Skip to main content

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

Results

Stage 2: Process / Design Level

All from Big Picture and We add:

Results

Stage 3: Software Modeling

Results

Event Storming Artifact Table

ArtifactColorDescription
Domain Event Orange

A Domain Event represents something meaningful that has happened in the domain, described as a past-tense verb.

  • Cargo was loaded onto the aircraft
  • Flight plan was submitted
  • Maintenance task was completed
Hot Spot Red

A Hot Spot highlights a problem, ambiguity, or point of friction that needs further exploration or clarification.

  • What does "cargo ready" actually mean?
  • Two teams use different definitions of “departure time”
  • Unclear who approves the flight plan
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.

  • New Customer
  • Cargo Dispatcher
  • Amy (Flight Coordinator)
External System Pink, rectangular

An External System represents any system, organization, or department outside our control that interacts with our domain.

  • Airport Control Tower
  • Third-party Weather Service
  • Cargo Booking Platform
Opportunity Light green

An Opportunity highlights a potential improvement, innovation, or positive change identified during the exploration of the process.

  • Automate cargo check-in process
  • Send reminders before flight plan submission deadline
  • Introduce real-time task progress tracking
Command Blue

A Command represents an intentional action or decision triggered by a person or system to cause change in the domain.

  • Assign task to technician
  • Submit flight plan
  • Close maintenance report
Policie Violet

A Policy defines a rule or automated/manual reaction that triggers a specific action when a particular Domain Event occurs.

  • When cargo is delayed, notify operations team
  • When maintenance task is closed, trigger invoice generation
  • After flight plan is submitted, validate weather conditions
Read Model Dark green

A Read Model represents the information or data needed by an actor to make a decision or perform an action.

  • List of open maintenance tasks
  • Flight schedule for the current week
  • Assigned cargo for a specific aircraft
Constraint Yellow, rectangular

A Constraint defines a business rule or limitation that must be respected when executing a command or taking action.

  • Only the task creator can close the task
  • Cargo weight must not exceed aircraft limit
  • A technician can be assigned to one flight at a time
Aggregate Light yellow

An Aggregate represents a cluster of domain logic and state that handles commands and emits events, acting as a consistency boundary.

  • Task
  • Flight Plan
  • Cargo Assignment