Event sourcing is an architectural pattern that tracks changes to application state by storing a sequence of events, each describing a specific change. This approach allows systems to reconstruct the current state by replaying these events.
Workflow:
Producers → List of events → Apply Business Logic → Generate the Desired State
For instance, consider a failed bank transaction where money is debited from the source account but not credited to the target account. A support team could fix this executing few queries on tables in a traditional RDBMS system. However, in event sourcing, support staff must dig through event logs, trigger compensating events, and execute business logic to verify the correct state.
Now, imagine this complexity across various transaction types in a bank. This would significantly increase the complexity of support interfaces compared to simply updating database tables.