What is event sourcing and how does it differ from traditionally storing just the current state of a record?
Event sourcing stores every change to a piece of data as a permanent, ordered event — such as CustomerCreated, then NameUpdated, then EmailUpdated — rather than storing only the current row with its latest values. Current state is never saved directly; it's calculated by replaying every event for that object, in order, from the beginning, similar to recalculating a bank balance by re-adding every entry in a statement. A traditional system that overwrites a row loses all history the moment a new value replaces an old one, while an event-sourced system permanently preserves exactly what changed, when it changed, and often why. The trade-off is that reading current state now requires a calculation instead of a simple lookup, though real systems typically cache that calculation and only replay events since the last cached point.
Ready to master this question?
Generate a complete walkthrough — background, the full answer in plain language, a working code example explained line by line, a real-world scenario, common mistakes, and how this same question gets asked in different ways.
Sign in to generate a response