Event Storming cheat sheet

"its developer (mis)understanding that's released in production, not the experts' knowledge" Alberto Brandolini

What is it?

Event Storming is a flexible workshop format for collaborative exploration of complex business domains. It was created by Alberto Brandolini.

When to use it?

Event Storming can help you or your team learn more about the product. Doesn't matter if you are planning to build, currently building or planning a refactor. Here are some valid use cases:

If you're a tech lead or a manager

I'm onboarding new developers to the project

Event Storming wokrshop can help new developers get up to speed up processes and vocabulary used in the project

I'm starting new project with complicated business domain

Event Storming worksop can help understand the actors, processes and vocabulary

I want to map issues and improvements of current of current legacy system

You can start by mapping the current implementation and highlight the issues and painpoints. Then, you can host a separate session with the envisoned implementation. The main discovery goals are: domain language, observable system behaviours and hotspots

If you're a developer

I'm working on new complex feature or microservice

Hosting Event Storming session can boost the productivity and increase the correctness of code your team is planning to write.

I want to split monolith into microservice

In order to split your service into autonomous services you need to understand the areas of your systems. Workshop can help you identify the bounded contexts.

Elements

Event Storming uses different, named elements to model the domain. Because event storming is a flexible tehchnique you can add arrows, images or new elements depending on your needs. The colours of the cards and names might differ but the core elements are:

Actor

Actors represent groups of users interacting with the system.

Example actors for ridesharing application:

  • • Driver
  • • Rider
  • • Moderator

Command

Definition

Command represents intention. Commands can be triggered by a user or an external system.

Examples

Example commands that could be made by an user:

  • • Order product
  • • Sign document

Insights

  • • Commands can be mapped to POST, PATCH or PUT requests made to an API or messages published on the queue

Event

Definition

An event is a meaningful change that has happened in the past

Rules

There are general rules that you should follow when writing your events

Events should be written in past tense

Events are meaningful things that have happened in the past

Events should be specific

Events should be specific and not general. Many systems allow users to edit their profiles. Changing name often has a differnt consequences than changing your email or payment method.

This event is too general. It is better to have a separate event for each change. This makes it easier to understand what are the options and their consequences

Hotspot

Definition

Hotspots indicate need for future exploration. They can contain unknows or risks.

Examples

  • • What is the recompensation strategy if order product is currently out of stock

Insights

  • • The large number of hotspots may indicate that you are missing a key stakeholders or domain experts.

System

Definition

External systems which your system interacts with.

Examples

Some example systems include:

  • • payment gateway
  • • CRM (eg. SFDC)
  • • Identity provider (Okta)

Insights

  • • Number of external systems indicates the complexity of the system. The more integration there is the more complex the system

Event types

Events can operate on different abstraction and technical levels. It's important to know the differences. In most of the event storming sessions you should focus on discovering the domain events.

User Interface

Events related to touchpoints and interfaces

Button clicked
Email entered
FOCUS HERE

Domain

Meaningful business change

Product bought
Email verified
Order placed
Invoice sent

Environmental

Real world events. Can be added to increase visibility

Client entered the store
Gmail has an outage

Infrastructure

Low-level often implementation detail. Can be added if crucial domain part

Event created on AWS SQS
POST request made

Levels

Event Storming can be used on different levels of abstraction, depending on the goal of the workshop. Each level is a refinement of the previous and adds more details.

Level Elements Goal
Big Picture Event Storming Event, Hotspot, Actor, System Get an overview of the domain
Process Level Event Storming -||- plus Command, Policy, Read Model Get an overview of the process
Design Level Event Storming -||- plus Aggregate Low level implementation based on tactical Domain Driven Design

How to facilitate?

Universal tips that make a good facilitator also apply for facilitating an event storming workshop. However there are some specific tips that should make facilitating your next seesion more efficient:

General facilitation tips

  • Start with a quick check-in
  • Keep a timer and make breaks
  • End with a check-out and collect feedback for next sessions

Introduce notation gradually

Don't overwhelm the team with too many elements at once. Start with events and add more elements only if they provide more clarity not confusion.

Pick a narrator

Pick a person who will look at the elements and explain whole flow to the rest of the team. People listenign could see what is missing and understand the flow better.

Session is as good as your events

Events are a key to a good outcome of the session. Make sure you spend enough time on discovering and refining them. Don't be tempted to "move on to next elements", this is not a game.

Create a dictionary for domain concepts

In a dedicated space write down all jargon, acronyms, or specialized terms that might be unfamiliar to participants.

Example modelling questions:

  • who changes it?
  • why does it change?
  • can the change be repeated?
  • can the change be withdrawn?
  • how often does it change?
  • what are the consequences of change?

What are the key requirements?

Provide unlimited modelling space

It can be a whiteboard, a wall, a flipchart, a digital board

Invite the right people

Developers, testers, designers (they bring the questions), domain experts (they bring the answers), facilitators

Levels

Big Picture Event Storming

This is the entry level session, with a goal to get an overview of the domain. The elements used during this section are: Event, Hotspot, Actor and System

Steps

1. Kick off
  • • Describe workshop goal
  • • Give an introduction to the technique
  • • Have a clear definition of domain event
2. Chaotic exploration
  • • Start with a first event
  • • Let the participants generate events
3. Cleanup and refine events
  • • Remove duplicates
  • • Remove or rewrite events that don't follow the rules (see Event rules)
3. Enforcing the timeline
  • • Add timeline to the board
  • • Find the pivotal event
  • • Move events on the timeline
4. People and systems
  • • Identity actors in your system
  • • Add actors to the board
  • • Identity external systems
  • • Add external systems to the board
5. Problems and opportunities
  • • Go through the process in reverse, people cannot lie backwards. This may generate new events, improvements or branching

Last updated: 27.05.2025