ADR 0020: The EventStore contract

Decision

Any storage backend (file/git today; SQLite next; anything later) is valid iff it honors this contract:

Context

The storage seam is where “just this once” optimizations concentrate: a parsed-column schema that re-serializes (hash fork risk, ADR 0008), a store that orders by insertion (hidden coupling), a cleanup job that prunes “obsolete” events (corruption, ADR 0004). Writing the contract before the second backend exists means SQLite gets built against rules, not against the file store’s incidental behavior.

Consequences

see history · edit this page