Following are few use cases where this pattern will be a right fit:
- Event Driven Applications (EDA): Applications that use events to communicate with each other are a good fit for Event Sourcing.
- Auditing: Event Sourcing supports the feature of auditing without requiring any changes to be made in the application to support it.
- Derive business value from event history: Certain applications such as banking applications need to preserve history of events to determine the existing state. Preserving events can help answer historical questions from the business about the system.