Folks, can you please point me to recent efforts in Distributed Reactive Programming? How can we build whole systems (spanning multiple simultaneous users as well as the database) in React/Vue/Svelte- like way, instead of just UI components? What are the typical challenges and the unsolved problems?
I thought of this dl.acm.org/doi/10.1145/1807167.1807184 but its for large graphs and not reactive.
Pregel: a system for large-scale graph processing
π¬ #present-company@2025-06-30
The survey paper for reactive programming says distributed reactive programming is an open problem (pdf)
[June 30th, 2025 10:17 AM] tom.larkworthy: ok I found this now, quite good citation count https://dl.acm.org/doi/abs/10.1145/2501654.2501666
https://soft.vub.ac.be/Publications/2012/vub-soft-tr-12-13.pdf|pdf
Tom Larkworthy Nice! π
It's from 2012 so feels a bit dated. React/Vue/Svelte all happened afterwards.
I came across this one from late 2024, though not a survey paper: dl.acm.org/doi/pdf/10.1145/3689492.3690048
not sure if I understand the connection to React/Vue/Svelte. They are not network technologies.
I worked on the Firebase realtime database in 2014 which was a causally consistent event driven database. We now have convex.dev or zero or livestore which are successors aimed at application building.
None of them are really distributed in the fault tolerant sense. I also worked on Firestore which was actually geographically fault tolerant (5 nines availability!) but it is so complex it requires a mega corp to cosntruct (its built on some of the same infra as Google Spanner). I feel like Firestore probably is the state of the art in true distributed reactive databases but its not necessarily the one I would choose to build an app with, but technologically it is impressive.
π Zero Docs
The official documentation for Zero by Rocicorp.
π LiveStore: Local-first data layer for high-performance apps
LiveStore is a state management framework based on SQLite and event-sourcing. Itβs designed for demanding applications and based on years of research.
instantdb.com. Actually livestore might actually be truely distributed too so that perhaps is right up there with impressiveness.
π InstantDB: A Modern Firebase
We make you productive by giving your frontend a real-time database.
Is there a difference between reactive programming and programming a system of asynchronous reactive components?
I don't think so. Components just emphasize modularity and reusability, in addition to reactivity.
Its actually something I'm working on myself - although in a way, I guess a lot of people probably are in bespoke sort of ways.
I'm glad to see Tom Larkworthy chime in, I had a feeling they'd have some good insight/links in this department.
There's also rxdb.info which I've checked out but never used.
Electric Clojure seems relevant here github.com/hyperfiddle/electrichttps://github.com/hyperfiddle/electric