Skip to content

Event Storming

Posted on:October 4, 2024 at 7 min read

Event Storming

I first heard about Event Storming when I read about DDD (Domain Driven Development). It caught my attention, and now it’s a valuable tool for my teams when exploring new products/business opportunities. It is a great way to align business with software.

What is Event Storming?

Event Storming is a collaborative workshop created by Alberto Brandolini in which people brainstorm and explore a specific business process. The concept is to gather people with different expertise (engineers, designers, support, sales), domain experts and map the business process using sticky notes representing various components such as domain events, commands, actors, etc. By the end of the workshop, everyone should know how the business works and define a ubiquitous language.

Why Event Storming?

There are many reasons and benefits to conducting an Event Storming workshop:

How to run an Event Storming workshop?

event storming

Before running the workshop, it is essential to do some preparation:

After confirming all the previous requirements, we are ready to start the workshop following steps:

Step 1 - Chaotic exploration

At this step, each participant writes potential domain events in the business process on orange stickers, such as a customer ordering food. The order of the events is irrelevant at this phase. They must be written in the past tense to describe something that has happened. e.g. example, MenuOpened, OrderCreated. When people slow down writing new events, it’s time to move to the next phase.

Step 2 - Creating a Timeline

This step aims to order the events from start to finish. Ideally, it’s easier to start focusing on the happy paths where the business case is successful and later focus on the unsuccessful paths. During the ordering process, it is vital to refine the event names, remove duplicates, and add missing domain events to have a clear timeline of the business process.

Step 3 - Review Events

At this stage, the group should verify each domain event and discuss if it’s semantic well-written and in the correct order. During this process, it’s important to flag hot spots to discuss later. A hot spot can be a complex logic or part of the process where the group lacks knowledge.

Step 4 - Pivotal Events

Since all the events are in order, it is crucial to identify events that create a significant change in the context of the business process. These events are called pivotal events and must be flagged with a vertical line to represent the different transitions between contexts.

For example, in the following timeline: OrderInitialized, OrderCreated, PaymentStarted, PaymentSettled, OrderShipped, OrderDelivered. The OrderInitialized, PaymentStarted and OrderShipped are pivotal events because they represent different contexts in the business process, the creation of the order, payment and shipping.

Step 5 - Process Modelling

Now that we have a better overview of the problem, it’s time to model the business process using all components. The idea is to map the entire journey and create an end-to-end picture of the business process. To be explicit and reduce confusion. Each component represented by a sticky note has a unique colour.

event storming journey

Step 6 - Software Modelling

At this point, we have a colourful end-to-end picture of the business process. The final step is to find patterns that aggregate the same business context using the component aggregates.

Aggregates - An aggregate is a technical component when doing Software Modelling. After completing the picture of the process modelling, we use aggregates to identify a transactional unit that must be consistent (business concepts). In the timeline, aggregates receive a command and produce multiple events. For example, a user executes a command to request an order. The command invokes an action on the order aggregate composed of events related to the order concept.

Step 7 - Review the picture

After completing the steps, the group must review the business process until it makes sense. At this step, it’s crucial to define the ubiquitous language used in the business and software. Everyone must have the same understanding of the business process and use the same terminology. The concept of “order” must be the same for a designer, engineer or sales.


In conclusion, Event Storming is a powerful tool for understanding complex businesses and uncovering potential issues. Incorporating EventStorming early in the development lifecycle ensures a strong foundation and alignment between business and technology, reducing ambiguity and leading to more efficient product delivery.