Event Sourcing Stores What Happened, Not What Is, and That Is Both Its Power and Its Cost

Key takeaway: Event sourcing stores the history of changes — the events — rather than the current state, which gives a complete audit trail and the ability to reconstruct any past state, but it adds real complexity and changes how the system is built, so it is a deliberate choice, not a default.
What Event Sourcing Is
In a conventional system, the database stores the current state — the current value of each record. In an event-sourced system, the database stores the events — the record of every change that happened. The current state is not stored directly; it is derived by replaying the events.
This is a fundamental difference. Instead of updating a record to its new value, the system appends an event describing the change, and the current state is computed by applying all the events in order. The events are the source of truth, and the state is a projection of them.
The Power of Event Sourcing
| Benefit | What it provides |
|---|---|
| Complete audit trail | Every change is recorded and can be examined |
| Reconstruct any state | Any past state can be rebuilt by replaying events |
| Reproduce history | The exact sequence of changes is preserved |
| Rebuild projections | Different views can be derived from the events |
The power of event sourcing comes from having the complete history. Every change is recorded, so there is a complete audit trail, any past state can be reconstructed by replaying the events up to that point, and different views of the data can be derived from the same events. This is valuable for systems where the history matters — where auditing, reconstruction, or analysis of past states is important.
The Cost of Event Sourcing
The cost of event sourcing is real complexity. The system has to manage the event log, handle the replay of events to reconstruct state, deal with the fact that the current state is not directly stored, and manage the evolution of the event schema as the system changes. This is significantly more complex than a conventional state-based system.
The complexity is justified only when the benefits — the audit trail, the ability to reconstruct state, the history — are genuinely needed. For a system where the current state is all that matters, event sourcing adds complexity without providing value.
When Event Sourcing Makes Sense
Event sourcing makes sense when the history of changes is itself valuable — when the system needs a complete audit trail, needs to reconstruct past states, or needs to derive multiple views from the same history. It is a deliberate architectural choice for systems with these needs, not a default for all systems.
The Bottom Line
Choose event sourcing deliberately, since it stores what happened rather than what is, which gives a complete audit trail and the ability to reconstruct any state, but adds real complexity and changes how the system is built. Use it when the history of changes is genuinely valuable — when auditing, reconstruction, or deriving multiple views from the same events matters — and prefer a conventional state-based system when the current state is all that matters, since event sourcing’s complexity is only justified by its benefits.



