ACID for Event Ledgers

Permalink to “ACID for Event Ledgers”

Relational transaction-oriented databases have a set of properties called “ACID”, which stands for Atomic, Consistent, Isolated and Durable. Evently has similar properties, though with some reconceptualization given the append-only nature of a ledger. One notable difference is that Evently’s “I” stands for Immutable, which is a more valuable property than Isolation.

Atomic

Permalink to “Atomic”

A state change occurs if the previously-known state has not changed. In Evently, an atomic append uses a selector to act as the state conditional. If the selector is quiescent, meaning no new events match it, then the event appends to the ledger.

Consistent

Permalink to “Consistent”

Consistency means the data changes in a way one expects.

Immutable

Permalink to “Immutable”
  1. Events are immutable and irrevocable. Once appended, they cannot be modified or individually removed from the ledger.
  2. Ledger event sequence is unmodifiable. Events cannot be inserted into the ledger ahead of other events. Events can only be appended to the end of a ledger.

Durable

Permalink to “Durable”
  1. Ledger events stay persisted once they are successfully appended.
  2. The ledger survives restarts.