Event Storming
A collaborative workshop technique for rapidly exploring and modeling complex business domains by discovering domain events on sticky notes.
Also known as: EventStorming
Category: Software Development
Tags: domain-driven-design, software-design, modeling, collaboration, methodologies
Explanation
Event Storming is a workshop-based method invented by Alberto Brandolini for rapidly exploring complex business domains. Participants—developers, domain experts, and stakeholders—collaboratively map out a business process by identifying domain events (orange sticky notes), commands that trigger them (blue), aggregates that handle them (yellow), and external systems, policies, and read models involved.
**How it works:**
1. **Big Picture**: Everyone writes domain events on orange sticky notes and places them on a long wall in rough chronological order. This creates a timeline of the business process
2. **Hotspots**: Mark areas of confusion, disagreement, or complexity with pink/red stickies for later discussion
3. **Commands and actors**: Add blue stickies for the commands that trigger events, and small yellow stickies for the actors (people or systems) that issue commands
4. **Aggregates**: Group related events and commands under yellow aggregates that enforce business rules
5. **Bounded contexts**: Identify natural boundaries where language or rules change, revealing bounded context boundaries
6. **Policies**: Add lilac stickies for business rules that react to events ('When OrderPlaced, then ReserveInventory')
**Why it works:**
- **Inclusive**: Non-technical stakeholders can participate meaningfully—no UML or technical notation required
- **Fast**: A few hours of Event Storming can reveal domain insights that months of traditional analysis might miss
- **Visual**: The physical wall creates a shared mental model that everyone can see and discuss
- **Conflict-surfacing**: Disagreements about how the business works become visible immediately, preventing costly misunderstandings later
**Variants:**
- **Big Picture Event Storming**: High-level exploration of an entire business domain
- **Process Modeling**: Detailed modeling of a specific business process
- **Software Design**: Drilling into aggregate design and bounded context boundaries for implementation
**Practical tips:**
- Use a very long wall (8+ meters) with unlimited sticky notes
- Include both developers and domain experts—the magic happens at the intersection
- Start with events, not entities or data models
- Embrace chaos initially; structure emerges through discussion
- Photograph the result and translate it into a more permanent format afterward
Related Concepts
← Back to all concepts