Opening Scenario
You're rebuilding the wallet service. The product team's three asks: (1) regulators want a complete, immutable history of every balance change with the ability to reconstruct any account's state at any past moment; (2) the data team wants to derive new projections (fraud signals, user dashboards, monthly statements) without re-querying production; (3) a recent bug silently corrupted balances and recovery required guessing what should have happened. The senior architect says "this is an event-sourcing problem." Before you commit your team to the rewrite, you need to understand what event sourcing really is, how it differs from "we already publish events," what it costs, and when it's the wrong choice.
Question Progression
1. What does "event sourcing" actually mean, structurally?
Question. Most services already emit events about state changes (via [[outbox-pattern]] or CDC). How is event sourcing different?
Reasoning. In a CRUD service, the current state is the system…
In the full tutorial
- When to Reach for This