← PRACTICES

Event Storming

Collaborative discovery of domain events on a shared timeline

Practice

A facilitated workshop in which domain experts and engineers map what happened in the business as domain events on a timeline — before naming aggregates, services, or storage.

Event Storming is a workshop format for exploring complex domains quickly. Participants place domain events — past-tense facts about what happened in the business — on a timeline (typically sticky notes on a long wall or board). Hot spots, commands, actors, and read models emerge from the timeline rather than from table design or REST resources first.

The method was invented by Alberto Brandolini, who introduced it to the Domain-Driven Design community around 2013 as a way to align business and engineering vocabulary before writing code.

What it is

A Big Picture or Process Event Storming session starts from events only: OrderPlaced, PaymentCaptured, ShipmentDispatched — not OrderCreated or OrderUpdated. Facilitators keep the group in domain language until the story is coherent; aggregates, bounded contexts, and integration points are derived from the timeline, not imposed from an existing schema.

The output is a shared narrative of what the organisation recognises as having occurred, who cared, and where decisions or policies applied. That narrative is the raw material for event models, service boundaries, and tier-one event names.

When to use it

  • Greenfield domains where vocabulary is unsettled.
  • Legacy systems where the code says Updated but operations describe ten different acts.
  • Cross-team alignment before committing to event schemas or APIs.
  • Recovery from CRUD as domain language — the workshop forces real-world verbs onto the wall before they are collapsed into generic persistence names.

Relation to this site

Event Storming does not replace the commitment boundary or capture-mode discipline from Four Capture Modes. It surfaces candidate domain events and process boundaries so those distinctions can be named before they are lost in CRUD-shaped type strings. See Domain Events Are Not CRUD and Domain events name the real world.

Further reading

  • Alberto Brandolini — originator of Event Storming.
  • Brandolini, A. (2021). Introducing Event Storming. Leanpub.