How it works
Events are facts
An event records something that already happened, such as OrderPlaced, and should not be edited after it becomes part of history.
Projection
A read model folds events into a view optimized for queries and can be rebuilt when its logic changes.
Snapshots
Periodic snapshots reduce the cost of rebuilding long-lived aggregates without replacing the authoritative event history.
Event evolution
Old events remain replayable, so schemas need compatibility, upcasting, or version-aware projection code.