Status: Accepted (2026-07-15)
A Datomic-style system can start as an embedded library (Datalevin-style) and grow distribution later, or commit to the transactor/peer/storage-service separation immediately. Retrofitting the split is expensive: it changes what the storage interface must guarantee (remote, cacheable, eventually consistent blobs vs. local KV), where query runs, and how peers learn about new transactions.
Design the three roles — single-writer transactor, query-executing peers, passive storage service — as distinct components with narrow interfaces from the first commit. Early milestones run them in one process over an in-process transport implementing the same service traits as the eventual gRPC layer (M4); no engine code may assume co-location.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |