Status: Accepted (2026-07-15); implemented in M7 — see
docs/design/log-and-transactor.md for the realized mechanism (lease
folded into the DbRoot record, lease-versioned log files, post-append
fence).
Datomic achieves write availability with an active/standby transactor pair coordinated by a storage-level lease — no consensus protocol. Building failover immediately would delay the first end-to-end system; ignoring it risks baking in assumptions (unfenced root writes, connection-bound peer state) that make HA a rewrite.
v1 milestones run a single transactor, but three HA-critical mechanisms are in the v1 contracts: (1) the write lease record and its acquisition CAS in the root store, (2) lease-version fencing validated atomically inside every DbRoot CAS, (3) peer reconnect/resubscribe-from-basis with log backfill, which doubles as ordinary reconnect handling. Failover itself — standby process, takeover on lease expiry, peer lease-holder rediscovery — is milestone M7.
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 |