Event Storming Workshops

Production engineering guide for event storming workshops covering patterns, implementation strategies, and operational best practices.

Event storming is a collaborative workshop technique for discovering and modeling domain events in complex business processes. It works best when teams need to understand how information flows through a system, particularly during early design phases or when refactoring existing systems.

Starting an Event Storming Session

Gathering Participants

The session requires 3-8 participants with domain knowledge. Typically include:

Setting Up the Physical Space

Use large sticky notes (at least 3"x3") and markers in multiple colors. Arrange space for a central wall or table where all participants can see everything.

Defining the Scope

Begin with a single business process or bounded context. Write the process start event on a yellow sticky note at the top of the wall.

Identifying Events

Event Naming Convention

Events should be named in past tense and describe what happened, not what is happening. Examples:

Event Types

Create separate sticky notes for:

Building the Timeline

Ordering Events

Place events horizontally across the wall, ordered chronologically from left to right. The timeline should be readable from left to right.

Identifying Participants

Create sticky notes for each actor or system involved in the process:

Adding Commands

When an actor initiates a process, create a command event (blue) and place it on the timeline. The command should be followed by the resulting domain event.

Refining the Model

Creating Aggregates

Identify business entities that encapsulate related data and behavior. These become aggregate root names:

Identifying Commands

For each domain event, determine what command caused it. For example:

Adding Read Models

Create separate sticky notes for read models that consumers need to understand the system state.

Workshop Patterns and Anti-Patterns

Common Event Storming Patterns

Sequential Flow

Events flow from left to right in chronological order. Each event should have a clear causal relationship to the next.

Parallel Processing

Multiple events can happen simultaneously, shown by placing them on the same horizontal line.

Conditional Logic

Add decision points with "if" conditions on sticky notes. These typically result in branching timelines.

Common Anti-Patterns

Too Many Events

Creating too many granular events leads to complexity. Focus on meaningful business facts rather than implementation details.

Missing Commands

Only creating domain events without identifying the commands that trigger them makes the flow incomplete.

Confusing Event Types

Mixing up domain events, command events, and system events creates confusion about causality.

Handling Complex Scenarios

Multiple Aggregates

When multiple aggregates are involved in a process, create separate timelines for each aggregate and connect them with arrows or shared events.

External Dependencies

Create dedicated sticky notes for external systems or services. Mark these as "external" or "third-party".

Error Handling

Add error events and recovery steps to the timeline. These should be clearly marked and positioned appropriately in the flow.

Workshop Tools and Materials

Physical Materials

Digital Aids

While physical sticky notes are preferred, use digital tools like Miro or Mural for:

Common Workshop Failures

Timeline Disruption

When the timeline becomes too complex, participants lose track of causality. To prevent this, keep each event on a single horizontal line.

Over-Engineering Events

Participants often create events for every possible system action rather than focusing on business-relevant facts.

Missing Participants

Failing to identify all actors involved in a process leads to incomplete models.

Workshop Execution Tips

Time Management

A typical session lasts 2-4 hours. Break into 30-minute segments with breaks between each major phase.

Facilitation Techniques

Use a timer and rotate facilitation roles. Keep the group focused on events, not technical details.

Decision Making

When conflicts arise about event naming or flow, use voting or consensus techniques.

Finalizing the Model

Creating Documentation

Convert the sticky notes into formal documentation:

Version Control

Store the final model in a version-controlled repository. Use clear file names like event-model-order-processing.md.

Sharing Results

Distribute the final timeline to all participants and stakeholders. Create a summary of key events and their relationships.

Technical Considerations

Event Persistence

Events should be stored with timestamps and metadata for audit purposes.

Event Ordering

Ensure chronological ordering is maintained when implementing event handling systems.

Event Schema

Define consistent schemas for all events, including required fields and data types.

Common Technical Issues

Event Naming Confusion

Using inconsistent naming conventions leads to confusion. Stick to past-tense verbs and clear business semantics.

Missing Event Metadata

Failing to include timestamps, causality markers, or source information makes events difficult to trace.

Incomplete Event Relationships

Missing relationships between commands and events creates gaps in understanding the system behavior.

Workshop Outcomes

Clear Business Understanding

The final model provides a shared understanding of business processes and their flow.

Technical Implementation Guidance

The event storming session produces concrete examples for technical design decisions.

Communication Aid

The visual model becomes a communication tool for both technical and non-technical stakeholders.

Maintenance and Updates

Updating the Model

As requirements change, update the event storming model accordingly. Document changes with clear commit messages.

Review Cycles

Schedule periodic reviews of the event model to ensure it remains accurate as the system evolves.

Change Impact Analysis

Use the event model to analyze how changes affect other parts of the system.

This page was rewritten on 15 October 2026. It replaced a templated version that was not specific to its own title. How these pages are written and checked. If anything here is wrong, tell us at [email protected] and we will correct it.