sixthnormal / clj-3df

Clojure(Script) client for Declarative Dataflow.
Eclipse Public License 2.0
328 stars 13 forks source link

Roadmap? #43

Closed georgeciobanu closed 5 years ago

georgeciobanu commented 5 years ago

I know it's hard to predict but do you have even a rough estimate of when a semi-stable version will be out? I love it and want to use in a project. If no estimate, anything else I could use with datomic for similar functionality?

comnik commented 5 years ago

Hey, thank you for the interest. Do you have some more details on your use case, that you could share (here or via mail)? Depending on that, an answer could range from "you could use it today" to "not in the foreseeable future".

georgeciobanu commented 5 years ago

Hi, thank you for your quick reply. I'm looking to build something similar to Bubble.is or tryretool.io or many other tools. Essentially my users (I'll call them devs) will design mobile apps for their users (will call them users). When User A creates a new item and User B is in the app, I'd like thir list of todos to be updated asap with the new item UserA added, ideally with as little traffic as possible.

Let me know if this makes sense if not glad to detail more.

comnik commented 5 years ago

This is definitely possible right now on the backend, but will involve a bunch of trial and error on the frontend, as we figure out how to marry 3DF's incremental-approach with e.g. React's snapshot-approach. Some experiments here: https://github.com/comnik/functional-differential-programming.

We are working with the Datahike folks to demonstrate a database + streaming query approach over the coming few months.

For starters, I would suggest starting with an event-driven approach in the backend, a frontend based on https://github.com/tonsky/datascript, and to then broadcast events to all relevant users. This will allow you to figure out most of the important issues, before replacing the broadcast component with 3DF for scale.

georgeciobanu commented 5 years ago

Thank you. Not worried about the frontend, I got that part covered.