I have been working on a distributed Datalog engine à la Datomic on top of object storage. The system is called Triplox. I am using https://github.com/slatedb/slatedb at the storage layer. The main ideas are roughly the following (in no particular order):
- Object storage centric. In its final version Triplox should simply need a single (or likely two) S3 bucket(s) for deployment.
- The Datomic data model and API as main inspiration.
- A client/server architecture.
- Incremental Datalog queries. You can dynamically subscribe and unsubscribe from live Datalog queries. This is the most experimental part of Triplox and will need more effort to scale. Standard connectives (`and`, `or`, `not`) are already supported. You can find an intro here: https://triplox.xyz/incremental-queries/overview/.
The incremental query angle is likely the most interesting aspect for people considering such a solution. If you have an incremental Datalog problem or are working on sync engines, Triplox might be of interest.
Website: https://triplox.xyz/
Wow cool, commenting so I remember.
There was a team that did something like this, I saw a talk about it once. But I think they did in JS with Datomic in browser that somebody wrote. I might update this comment later with the relevant links.
But its really cool idea and I think very useful for some applications.
Thanks. Yes happy to hear about other full solutions. By Datomic in the browser you likely mean https://github.com/tonsky/datascript.
Full solutions like InstantDB or ConvexDB offer the syncing part, but they don't seem to be doing full incremental queries in the backend, but rather some combination of smart invalidation and then full recalculation of the subscriptions which then get pushed to the clients.