Persistence layer that only allows append and read operations on immutable events (facts that have already happened). Triggers projectors that build the desired read state and reactors that react to events (including communicating with external systems). Backing it up and restoring from it is straightforward; if backed up, recovery from catastrophic data loss becomes trivial.