What Is Event Sourcing?

Below are a handful of summarized assertions from practitioners of event sourcing. This list will be fine-tuned over time, but for now they are what I highlight when teaching engineers about event sourcing:

  • Event Sourcing is a method of storage.
  • Event Sourcing is a pattern of permanently recording state changes (behaviors, intent) in an append-only log.
  • Event Sourcing is not a top-level architecture.
  • Event Sourcing is not just for auditing or for finance.
  • Event Sourcing is not necessarily harder than CRUD, but for many developers it requires a mental shift in thinking. Like any skill it must be practiced.
Looking for more information behind the why, what, and how of Event Sourcing? Check out the blog series Explain Event Sourcing Like I'm Five.

Conflated Design Patterns

Event sourcing can be used with these concepts, and often is. However, despite being orthogonal they have been getting conflated by developers of all experience levels. Many of these patterns pair well together and can build incredibly robust applications and systems, which highlights these misunderstandings are important to identify and educate upon.

By learning their distinct characteristics, software engineers will be more successful in their implementation and maintenance of systems that leverage them.