Event sourcing captures and summarizes changes to data using an event log.
Event sourcing provides auditability and powerful debugging techniques by replaying events.
Historical querying is made possible with event sourcing, allowing easy access to past states.
Event sourcing supports variant output states by allowing multiple systems to consume the event log and build their own application states.
Caution must be exercised when using event sourcing, as it can result in inconsistencies and complex implementation.