Event sourcing stores state as a sequence of events rather than as a single mutable record. Instead of updating a row in a database, you append an event describing what happened. Current state is derived by replaying events from the beginning.
An event represents something that happened in the past. It is immutable—you never modify or delete events. To “undo” something, you append a compensating event.
Property
Description
Immutable
Events cannot be changed after creation
Past tense
Named as facts: OrderPlaced, FundsDeposited
Complete
Contains all data needed to understand what happened