19. Event Storming

“People exploring a domain with collaborative brainstorming techniques focusing on domain events.”
— Jeremie Grodziski

Event storming has become very popular in the domain-driven design community to help discover a domain. This section presents the event storming workshop format, what it is, and its benefits. The event storming workshop format [Event Storming] was created by Alberto Brandolini [Brandolini 2019].

19.1. Summary: Why? How? Who?

The goal of an event storming workshop is to explore a domain with several people collaboratively.

To do so, people will be placing domain events on sticky notes on a wall along a timeline with an unlimited modeling surface.

The workshop puts together three kinds of people: people with questions, people with answers, and a facilitator.

fig-event-storming-example
Figure 48. Event Storming Modeling Surface Example

19.2. Domain Event

“Something that happened in the past that the domain experts care about.”
— Eric Evans

The orange color sticky note is the convention for the event.

The event is named with a past participle because of its simple semantic and notation. For example, order placed, order paid, order executed, product sent, etc.

Events are used because they are easy to grasp and relevant for domain experts.

19.3. Event Storming Principles

Event storming workshops focus on domain events structured along a timeline.

The goal of the event storming workshop is to maximize the learning of all the participants. At the end of the workshop, the participants should have gained a shared knowledge of the domain subject of the workshop.

The physical setup is important: the surface of the wall represents an unlimited modeling surface and everyone should stand up to increase engagement in the workshop. There must be a continuous effort of every participant to maximize the engagement. The collaborative approach involves people with questions, people with answers, and a facilitator.

Markers and sticky notes should be available in different colors and in sufficient quantity.

There should be no limitation of the scope under investigation and the model should be continuously refined through low-fidelity incremental notation.

19.4. Types of Event Storming Session

Event storming can have different goals, but mainly these two common ones are distinguished:

  • Big-picture event storming

    • Embrace the whole complexity

    • Maximize learning

  • Design-level event storming

    • Assumption: people have a shared understanding of the underlying domain

    • Focus: implementing software features that are solving a specific problem

19.5. Event Storming Notation and Concepts

The concepts used during an event storming session, apart from the event concept, are voluntarily set by the participants whenever they feel they need one. However, the facilitator can suggest the following “usual” concepts:

  • Command (usually with a blue sticky note)

    • Represents an intention sent to a system for making something

    • Result is either success or failure

    • Named with a verb and a nominal group

  • Aggregate or entity (usually with a yellow sticky note)

    • Cluster of domain objects, treated as a single unit

    • One of its objects is the root, ensuring the integrity of the whole aggregate by enforcing its invariant policy and transactional boundaries

  • Reaction (usually with a purple sticky note)

    • Represents a system-generated command triggered in response to one or more events

  • Hotspot (usually with a red sticky note)

    • Issue or something important that the organization must care about

  • Policy or rule

    • The flow of events and reactions together

  • Persona

    • Person triggering a command

  • Read model/query

    • Request asking for data in a specific model

19.6. Benefits

  • Opportunities to learn and facilitate a structured conversation about the domain; this workshop is the best and most efficient way for all participants to have shared knowledge of a domain

  • Uncover assumptions about how people think the system works; allows participants to identify misunderstandings and missing concepts

  • Shared understanding of the problem and potential solutions

  • Highly visual, tactile representation of business concepts and how they relate

  • Allows participants to quickly try out multiple domain models to see where concepts work and where they break down

  • Focus on concrete examples, not abstract ideas

19.7. Event Storming Workshop Facilitation Techniques

  • Facilitator hangs the first sticky note

  • Ask questions

    • Where does the money come from?

    • What are the targets, and how is it possible to know they have been reached?

    • Is there something missing, why is there a gap?

    • For whom is this event important – end user, stakeholder, etc.?

  • Visualize alternatives

    • It is too early to decide; let divergence happen

  • Reverse narrative

    • Start from the end – what needs to happen beforehand so that this event can happen too?

  • Interrupt long discussions

    • Visualize every opinion and ask every party if they feel their opinion is accurately represented

  • Timebox

    • Use the Pomodoro Technique®; after each 25-minute Pomodoro, ask what is going well and what is not – move on even if the model is incomplete

  • Constantly move sticky notes to create room for hotspots

  • Hang red sticky notes when you feel there is an issue

  • At the end, take a photo

    • You can throw the model away and start again with different people