What is EventStorming?

Introduced in 2013 by Alberto Brandolini and inherited from DDD (Domain-Driven Design), EventStorming is a collaborative software design workshop that aims to break down the silos between an organization’s departments and help people converge toward a common understanding of business processes. EventStorming can assist you in exposing any organization or system inconsistencies and help people identify areas for improvement.

Describing business processes visually while seeking a consensus between participants feeds decision-making within the organization. By making it possible to understand all the system components, EventStorming helps the actors make wise decisions, possibly structuring and decisive, in an informed way.

EventStorming generally begins with describing the events occurring inside a given domain, modeling the possible interactions between this domain and external systems, and then identifying friction points and risks. After that, you should define more precisely the actions (or commands) that can trigger these events and the actors concerned by the related decision (personas).

Then, you should describe the policies that characterize the business logic. It encompasses the processing blocks triggered by a command and producing events and the cause and effect logic between the events themselves. The other important objective of EventStorming is to learn about domain concepts or objects and create a language shared with domain experts.

To finish, the workshop can go as far as designing the interface by drafting the views (read models) necessary to inform the decision-making of the actor concerned, the views possibly being screens, documents, or reports.

The different uses of EventStorming

There are several EventStorming depending on the desired purpose:

The group of participants' composition depends on the workshop's purpose. For example, a Big Picture EventStorming typically involves a domain expert, a representative from the development team, and possibly an architect. In contrast, a Design Level EventStorming does not necessarily involve a domain expert.

What are the components of an EventStorming?

EventStorming uses a precise color code. As the representation of the system can quickly become relatively complex and extensive, it is strongly recommended to respect this code. This will help you keep the artifact intelligible:

The expected artifact is a physical or digital wall on which the stickies are placed, organized by groups representing different event sequences or processes.

Color coding summary from Alberto Brandolini's Introducing EventStorming ebook

Color coding summary from Alberto Brandolini's Introducing EventStorming ebook

How to run an EventStorming workshop

Step 1: The first step of the workshop is to define the different events that make up the system (orange sticky notes) and sort them in chronological order.

Step 2: Then, you should identify the possible problems (purple sticky notes) and opportunities (green sticky notes) that may arise at each stage of the process. This step is essential because it influences which parts of the system you will focus on next.

Step 3: You can now describe the system in more detail by identifying personas (yellow sticky notes), commands (blue sticky notes), and external systems (pink rectangular sticky notes).

How to run an EventStorming workshop Step 3 illustration

Step 4: You should then describe the rules (lilac rectangular sticky notes) that can condition the occurrence of certain events and the information (green sticky notes) that must be provided to users to help them decide.

How to run an EventStorming workshop Step 4 illustration

Step 5: To make the process easier to understand, you can aggregate several events around a domain or a business concept (light yellow rectangular sticky notes).

How to run an EventStorming workshop Step 5 illustration

Some tips and tricks from a Software Craftsmanship expert

Olivier von Dach is an expert in Software Craftmanship and has extensive experience in leading EventStorming workshops. Here he shares some recommendations to help you get the most out of this workshop:

EventStorming is a good way of starting a project. Then, you can follow up with more tactical sessions, for example, Example Mapping sessions to perform specification by example and, in particular, specify the rules associated with policies.

Olivier von Dach portrait
Olivier von Dach Expert in Software Craftsmanship, co-founder of the consulting agency SoCraAgile.

Some suggested resources to learn more about EventStorming