Event Storming (?!!?)
Why in C4 Model is Event Storming??!!
Event Storming is a collaborative workshop technique designed to explore complex business domains by focusing on domain events — key moments that represent a meaningful change in the system. It facilitates deep understanding between domain experts and technical teams, helping to uncover processes, actors, rules, and potential inconsistencies in a shared visual language.
In the context of the C4 Model, Event Storming plays a critical role in the earlier stages of system design. Before creating Component diagrams, this approach is used to identify domain boundaries, aggregates, and responsibilities. These insights directly inform the structure of containers and components, ensuring that the resulting architecture aligns closely with business needs and domain logic.
By integrating Event Storming into the C4 modeling process, teams can bridge the gap between business understanding and technical design — laying the groundwork for scalable, domain-aligned software architecture.
Preparation Checklist
Event Storming workshop
Stage 1: Big Picture
- Domain Events (take me to description)
- Hot Spots (take me to description)
- Peoples (take me to description)
- Externals System (take me to description)
- Opportunities (take me to description)
Results
Stage 2: Process / Design Level
All from Big Picture and We add:
- Commands (take me to description)
- Policies (take me to description)
- Read Models (take me to description)
- Constraints (take me to description)
Results
Stage 3: Software Modeling
- Aggregates (take me to description)
Results
Event Storming Artifact Table
| Artifact | Color | Description |
|---|---|---|
| Domain Event | Orange | A Domain Event represents something meaningful that has happened in the domain, described as a past-tense verb.
|
| Hot Spot | Red | A Hot Spot highlights a problem, ambiguity, or point of friction that needs further exploration or clarification.
|
| People | Yellow small | People represent anyone involved in or interacting with the system — from broad user types to specific individuals — to spark discussion and uncover behavior differences.
|
| External System | Pink, rectangular | An External System represents any system, organization, or department outside our control that interacts with our domain.
|
| Opportunity | Light green | An Opportunity highlights a potential improvement, innovation, or positive change identified during the exploration of the process.
|
| Command | Blue | A Command represents an intentional action or decision triggered by a person or system to cause change in the domain.
|
| Policie | Violet | A Policy defines a rule or automated/manual reaction that triggers a specific action when a particular Domain Event occurs.
|
| Read Model | Dark green | A Read Model represents the information or data needed by an actor to make a decision or perform an action.
|
| Constraint | Yellow, rectangular | A Constraint defines a business rule or limitation that must be respected when executing a command or taking action.
|
| Aggregate | Light yellow | An Aggregate represents a cluster of domain logic and state that handles commands and emits events, acting as a consistency boundary.
|