Experience from numerous software projects shows that achieving effective communication between domain experts and engineers is still a major challenge. Traditional methods, such as roundtable meetings or separate interviews, are often ineffective and limit business involvement. As a result, system solutions are typically shaped by a limited understanding of business needs among technical teams, leading to systems that fall short of expectations. Event Storming is designed to bridge this communication gap between business and engineering, enabling full involvement from business stakeholders in the modeling process.
Another common problem in many organizations stems from working in silos. Here, we are not referring to the gap between business and engineering but rather to the gaps between different parts of the business itself. The issue is that domain experts typically understand their own department well but have little or no insight into what’s happening in other departments. This often leads to duplicate work, miscommunication, unnecessary delays, and many other forms of friction.
We are not suggesting that all silos are bad. Usually, they exist for good reasons, and we are not advocating for their removal. However, Event Storming can be a game-changer when it comes to aligning silos, fine-tuning how they work together, and helping all departments see the bigger picture. In just a few hours, Event Storming can uncover bottlenecks and misunderstandings that have been harming the organization for years. It can help large groups of people agree on shared challenges and reach consensus on priorities. The result? Often dramatically improved business performance, a sharper focus on the right problems, and system designs that support the way the business actually operates.
Event Storming is a workshop format that solves both the communication problem and the silo problem at once! It involves from a few up to 20 persons in the same room in front of a white board or using a digital tool such as Qlerify. Event Storming is based on a simple idea: the Domain Event. This is an event in a business process, described in past tense—like “order placed.” It’s easy for everyone to understand, making it simple for business people to join the conversation.
In an Event Storming workshop, domain experts and developers work together to explore how a business really operates. Domain events are mapped out together and arranged on a timeline. Once the basic flow is clear, more details are added—like: who’s involved, what systems are used, what are the business rules, which are the main pain points and where are there opportunities and ideas for improvement.
The best part? Event Storming is flexible. You can adapt it to fit your goals and the people in the room.
Event Storming can be used in different ways, depending on your goals. It operates at three distinct levels:
Read more about Big Picture Event Storming
Read more about Process Modeling Event Storming
Read more about Software design Event Storming
Event Storming just got a major upgrade with AI-powered automation in Qlerify. Instead of starting from a blank canvas, you can now generate a full Big Picture, Process Model, or Software Design tailored to your specific needs in seconds. When working with Event Storming at the Software Design level, the AI can instantly create commands and aggregates—automatically grouping commands and events around aggregates. This means spending less time on setup and more time collaborating with your team to refine and perfect your model.
Here, we will guide you through the detailed steps of conducting a Software Design-level Event Storming session in Qlerify with the help of AI. This example will hopefully also provide you with enough knowledge to apply the same approach to Big Picture and Process Modeling.
Log in to Qlerify or sign up for an account using the link in the footer, create a new project (using the buttons available after logging in), and then follow this step-by-step guide.
Create a new, empty workflow and open it. You should see a view similar to the image below. This is your blank workspace, where you can add a starting point, generate a workflow with AI, or review and update settings. You can also invite team members to collaborate on the project.
For more details about this view, click the question mark icon.
Open the workflow Settings by clicking the cogwheel above the workflow diagram and selecting the Cards tab.
When you create a new workflow in Qlerify, a default set of card types is provided. These can be used for Big Picture, Process Modeling, and Software Design-level Event Storming. You can add, update, and remove card types based on your needs. The default setup includes the following card types:
The card types "Given-When-Then" and "User Story" are not typically part of standard Event Storming. However, if you want to enhance your Software Design session, feel free to include Given-When-Then (GWT). In this example, we will leave them out for now.
Go ahead and update the Card Type Settings:
Note: There are two special card types (Command and Aggregate Root) that we use to be able to group Commands and Events around Aggregates at the end of our Software Design session.
Note: If you think Aggregate is a confusing term, feel free to change it to something like Entity or Information Object.
Finally, you can review—and update if needed—the descriptions of each card type by clicking Show description. These descriptions are used for AI prompting.
You can generate full workflows with AI whenever you start with a blank canvas by clicking "Generate Workflow with AI". Once you started adding events to a workflow, this button will no longer be visible.
There are several large language models (LLMs) available for you to use. In this example, we used ChatGPT-4o. You can select your preferred model (LLM) from several options in the workflow Settings (under the AI tab).
We’ll start with a simple prompt from the list of examples displayed when entering your prompt. Feel free to modify it to make it more detailed if you want:
Next, deselect "Generate Data Models with AI" (these are used for Event Modeling and Domain-Driven Design) and click "Generate Workflow."
Once the AI generation is complete, you may end up with a result similar to the example below, though the variation can be significant.
Now, collaborate with your team by going through the workflow step by step to ensure each step is correct. You can invite all your team members to Qlerify for real-time co-editing. Sometimes, it’s best if one person navigates the tool while others contribute verbally. This depends on the situation and your facilitation style.
Start with the first event, "Created Lead," and follow these steps:
Note: In Software Design Event Storming, each event should correspond to one state-changing command that operates on a single aggregate. If an event is not state-changing, consider leaving it out. If one event corresponds to multiple commands, split it into multiple events.
Note: When updating the Aggregate, a combo box will appear, allowing you to generate entities. At this stage, we will not generate entities but instead use free text for the Aggregate name. For more details on using Entities, see our articles on Domain-Driven Design and Event Modeling.
Now, repeat Step 4 for each event, refining your workflow iteratively. You don’t need to complete everything in a single session—you can revisit your workflow and refine it in separate sessions with different groups of people.
Things to Keep in Mind:
Qlerify offers powerful support for defining Entities, Read Models, and Write Models. For more information on these features, see our articles on Event Modeling and Domain-Driven Design (links in the footer).
Qlerify provides an instant view of Commands and Events grouped around Aggregates. This view is located under the workflow diagram in the Domain Model tab.
The view might look similar to the image below. Each command (the blue boxes) has its corresponding event on the right side, aligned at the same height. Here, you can see a summary of your aggregates and the operations available on each one.
The next step is to assign a bounded context to each aggregate. To do this, click "Select bounded context." After selecting a bounded context, the view may look something like this:
You have now captured the workflow and identified bounded contexts, aggregates, commands, actors, problems, and opportunities (and maybe even some GWTs). You have built the foundation of the domain model.
Now, you can further refine your model by specifying entities, read models, and write models in detail. For more information, see our articles on Event Modeling and Domain-Driven Design.
As a final step, review the identified problems, opportunities, and GWTs, and plan them into iterations.
You can use either the Backlog or the User Story Map view. In this example, we use the User Story Map, which is located in a tab under the Workflow.
At Qlerify, we have extensive experience with Event Storming and offer Qlerify, a unique cloud-based tool designed for this methodology. Sign up today using the link in the footer!
We also provide open and custom courses on Event Storming, in partnership with NFI. More information about the course can be found here: Event Storming Course
Need help getting started? We facilitate on-site and remote Event Storming workshops.
Contact us via the form in the footer to explore how Event Storming can benefit your organization!