yjbanov/butterfly

Complimentary libs

Opened this issue · 2 comments

Greencat is a flux, event store. Seems like a good match to me.

I am thinking of building an example to use both together.

But I am wondering if there are some other complimentary libraries to build examples with.

I also want to ask if the encapsulation philosophy extends all the way up to building PWA style web apps with this.
For example with PWA, I often load the common shared pojo (podo in dart I guess ) as a common library, so that asynchronously loaded components can latter use that and cross communicate.

Sorry about too many questions in one issue...

Can you elaborate a bit more on what you are referring to when you say complimentary libraries? Is it like an extra library specific for greencat-butterfly integration? If so, I am not aware of any plan in that regard right now.

As for PWAs I don't know how it can affect or improve, but I would guess that you could design your store so only the objects you need when you load are created, or even start with the store specific to the initial load and then combine it with the ones you need on the way, I have no experience with either approach and I guess it will be a tradeoff.

What are you planning for your example? I am interested in having a more comprehensive example in greencat.

well, they are complimentary because they are agnostic to being used in Flutter or Dart & they elaborate / extend the architecture.
greencat is agnostic and extends the architecture to support something called event store.

In my example, i am using a CQRS pattern as a play thing to build up an architecture.
The client is Dart (flutter and web)
The server is:

  • NAT proxy (the dart event store will talk to it) over websockets or http. Websockets likely.
  • behind that a NATS as the message queue
  • behind that are Dart & golang as simple microservices, with their own DB's

The idea is to allow the client to work offline and online. When online the messages will be replayed from server to client and client to server.
The other idea is to see how much reuse of code is possible between the Dart frontends and Dart backends.

I use golang for message queue and other infrastructure things because Dart does not have that yet.