4 ms·
I'm hedging my bets by using Datalog and the Datomic protocol wherever I can: https://tonsky.me/blog/datomic-as-protocol/ https://tonsky.me/blog/datomic-as-prot
by pgt 6y ago
I'm hedging my bets by using Datalog and the Datomic protocol wherever I can: https://tonsky.me/blog/datomic-as-protocol/ https://tonsky.me/blog/datomic-as-protocol/
And keeping a close eye on Differential Dataflow: https://github.com/TimelyDataflow/differential-dataflow/ https://github.com/TimelyDataflow/differential-dataflow/
DD is commercialized in Materialize: https://materialize.io/ https://materialize.io/
The solution is likely to arrive in the Clojure/ClojureScript ecosystem before it arrives anywhere else because tools like Datascript lend itself to this type of thinking, e.g. 3DF: https://github.com/sixthnormal/clj-3df/ https://github.com/sixthnormal/clj-3df/
The closest thing we have to streaming updates right now is FactUI, which uses the Clara rules engine, but it's IMO hampered by limitations of Clara and Cljs namespacing: https://github.com/arachne-framework/factui https://github.com/arachne-framework/factui
The RETE algorithm is a less general solution to incremental updates. Zach Oakes is doing some interesting work with O'Doyle Rules: https://github.com/oakes/odoyle-rules https://github.com/oakes/odoyle-rules
- pgt 6y agoFor context, refer to Tonsky's essay on The Web After Tomorrow: https://tonsky.me/blog/the-web-after-tomorrow/ https://tonsky.me/blog/the-web-after-tomorrow/ Differential Dataflow + Datomic solves this problem.