Has there been any strides in this area and what is the current state of them in 2020?
Thanks.
Pouch and couch solve the offline data scenario and live replication, but no auth story and the mapping of users to data is problematic (unless you build a proxy layer, there’s not an easy way to have some data be public, some private, and some shared).
Realm is paid these days, I believe, and it solves the data replication, but again, no auth.
And keeping a close eye on Differential Dataflow: https://github.com/TimelyDataflow/differential-dataflow/
DD is commercialized in Materialize: 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/
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
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
I haven't found another solution that can get you started as quickly as Firebase can. Most common complaint I hear from developers about Firebase is the concern that Google will drop support at some point. I can't fault that concern, but Google seems to drop developer products at a much lower rate than customer products.
It doesn't have sync or realtime yet, but it's a much better database overall.