event-storming-advanced
Deep dive Event Storming beyond big picture
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Event Storming Advanced Skill
When to Use This Skill
Use this skill when:
- Event Storming Advanced tasks - Working on deep dive event storming beyond big picture
- Planning or design - Need guidance on Event Storming Advanced approaches
- Best practices - Want to follow established patterns and standards
Overview
Conduct Event Storming sessions beyond big picture to process and design levels.
MANDATORY: Documentation-First Approach
Before facilitating Event Storming:
-
Invoke
docs-managementskill for Event Storming patterns - Verify methodology via MCP servers (perplexity)
- Base guidance on Alberto Brandolini's methodology
Event Storming Levels
Event Storming Progression:
LEVEL 1: BIG PICTURE
├── Purpose: Understand the whole domain
├── Participants: Everyone (business + tech)
├── Output: Domain overview, hotspots, bounded contexts
└── Duration: 2-4 hours
LEVEL 2: PROCESS LEVEL
├── Purpose: Detail specific business processes
├── Participants: Domain experts + analysts
├── Output: Detailed flows, policies, read models
└── Duration: 2-4 hours per process
LEVEL 3: DESIGN LEVEL
├── Purpose: Translate to software design
├── Participants: Developers + architects
├── Output: Aggregates, commands, event handlers
└── Duration: 2-4 hours per aggregate
LEVEL 4: SOFTWARE DESIGN
├── Purpose: Implementation details
├── Participants: Development team
├── Output: Code structure, APIs, schemas
└── Duration: Ongoing
Sticky Note Colors
Standard Event Storming Palette:
🟠 ORANGE: Domain Events
- Things that happened
- Past tense naming
- Business-significant state changes
🟦 BLUE: Commands
- User intentions
- Imperative naming
- May be rejected
🟨 YELLOW: Actors/Users
- Who initiates commands
- Personas or roles
- External systems
🟪 PURPLE/PINK: Policies/Reactions
- Business rules
- "When X happens, we do Y"
- Automated responses
🟩 GREEN: Read Models
- Information needed
- Views/screens
- Query results
⬜ WHITE: External Systems
- Third-party integrations
- Legacy systems
- APIs we don't control
🔴 RED/PINK: Hot Spots
- Questions
- Conflicts
- Areas of uncertainty
Big Picture Event Storming
Purpose and Outcomes
Big Picture Goals:
1. Create shared understanding
2. Discover bounded contexts
3. Identify hot spots and risks
4. Find key domain events
5. Align business and technical teams
What You Get:
- Timeline of domain events
- Bounded context candidates
- List of questions to answer
- Key actors and systems
- Critical business processes
Facilitation Steps
Big Picture Process:
STEP 1: CHAOTIC EXPLORATION (30 min)
- Everyone writes domain events
- No wrong answers
- Encourage wild ideas
- Cover the whole domain
STEP 2: TIMELINE ENFORCEMENT (30 min)
- Arrange events chronologically
- Left = earlier, right = later
- Find parallel flows
- Identify pivotal events
STEP 3: PIVOTAL EVENTS (20 min)
- Mark key moments (larger stickies)
- Business-critical transitions
- Points of no return
- Natural process boundaries
STEP 4: SWIMLANES (20 min)
- Group by actor or bounded context
- Identify handoffs
- Find integration points
- Note context boundaries
STEP 5: HOTSPOTS (20 min)
- Mark areas of confusion (red)
- Note missing information
- Flag conflicting views
- Capture open questions
STEP 6: BOUNDED CONTEXT SKETCH (20 min)
- Draw boundaries around related events
- Name the contexts
- Identify core vs supporting
- Note context relationships
Process Level Event Storming
Purpose and Depth
Process Level Goals:
1. Detail one business process end-to-end
2. Identify all commands and events
3. Map policies and reactions
4. Define read models needed
5. Clarify business rules
Prerequisites:
- Big picture completed
- Process scope selected
- Domain experts available
- Questions from big picture
Extended Notation
Process Level Additions:
COMMANDS (Blue)
┌────────────────┐
│ CreateOrder │
│ ───────────── │
│ By: Customer │
└────────────────┘
POLICIES (Purple) - aka Reactions
┌────────────────┐
│ ⚡ When order │
│ placed, reserve│
│ inventory │
└────────────────┘
READ MODELS (Green)
┌────────────────┐
│ 📖 Product │
│ Catalog │
│ (shows price, │
│ availability) │
└────────────────┘
AGGREGATE (Yellow border)
┏━━━━━━━━━━━━━━━━┓
┃ Order ┃
┃ ┌────────────┐ ┃
┃ │ OrderPlaced│ ┃
┃ │ OrderPaid │ ┃
┃ └────────────┘ ┃
┗━━━━━━━━━━━━━━━━┛
Process Level Template
# Process Level: [Process Name]
## Scope
[What this process covers, start and end points]
## Actors
- [Actor 1]: [Role description]
- [Actor 2]: [Role description]
## Process Flow
```text
[ASCII flow diagram]
Commands
| Command | Actor | Event Produced | Preconditions |
|---|---|---|---|
| [Name] | [Who] | [Event] | [What must be true] |
Events
| Event | Command/Policy | Downstream Effects |
|---|---|---|
| [Name] | [Trigger] | [What happens next] |
Policies
| Policy | Trigger Event | Action | Produces |
|---|---|---|---|
| [Name] | [When this] | [Do this] | [Events/Effects] |
Read Models
| Read Model | Purpose | Populated By |
|---|---|---|
| [Name] | [What query] | [Events] |
External Systems
| System | Integration Point | Direction |
|---|---|---|
| [Name] | [Where] | Inbound/Outbound |
Hot Spots & Questions
- [Question needing resolution]
- [Uncertainty to investigate]
Design Level Event Storming
Purpose and Artifacts
Design Level Goals:
1. Define aggregate boundaries
2. Identify command handlers
3. Design event structure
4. Specify validation rules
5. Plan event sourcing strategy
Outputs:
- Aggregate definitions
- Command/event schemas
- Invariant specifications
- Consistency boundaries
Aggregate Identification
Aggregate Design Questions:
BOUNDARY IDENTIFICATION:
- What must be consistent together?
- What can be eventually consistent?
- What is the transaction boundary?
NAMING:
- What noun represents this cluster?
- Is it a domain concept?
- Does business recognize it?
INVARIANTS:
- What rules must always hold?
- What combinations are invalid?
- What constraints protect integrity?
LIFECYCLE:
- How is it created?
- How does it change?
- When is it complete/archived?
Design Level Notation
Aggregate Card:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ AGGREGATE: Order ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ Commands: ┃
┃ • PlaceOrder ┃
┃ • AddItem ┃
┃ • RemoveItem ┃
┃ • SubmitPayment ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ Events: ┃
┃ • OrderCreated ┃
┃ • ItemAdded ┃
┃ • ItemRemoved ┃
┃ • OrderPaid ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ Invariants: ┃
┃ • Total > 0 ┃
┃ • Items not empty ┃
┃ • Status valid transition ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Bounded Context Discovery
Context Mapping from Events
Finding Bounded Contexts:
LINGUISTIC BOUNDARIES:
- Where does terminology change?
- Where are there synonyms/homonyms?
- Where do meanings differ?
OWNERSHIP BOUNDARIES:
- Who owns which events?
- Where do teams hand off?
- Which group decides?
LIFECYCLE BOUNDARIES:
- Different rates of change?
- Different deployment needs?
- Different data governance?
TECHNICAL BOUNDARIES:
- Different tech stacks?
- Different scalability needs?
- Different consistency needs?
Context Relationship Patterns
Context Relationships:
PARTNERSHIP
[Context A] ◄──► [Context B]
Tight collaboration, shared goals
CUSTOMER-SUPPLIER
[Customer] ◄── [Supplier]
Supplier serves customer needs
CONFORMIST
[Conformist] ──► [Upstream]
Downstream conforms to upstream
ANTI-CORRUPTION LAYER (ACL)
[Context] ──[ACL]──► [Legacy]
Translation layer protects domain
OPEN HOST SERVICE (OHS)
[Provider] ──[OHS]──► [Many Consumers]
Published API for integration
SHARED KERNEL
[Context A] ◄──[Shared]──► [Context B]
Small shared code/model (use sparingly)
Workshop Facilitation
Room Setup
Physical Requirements:
- Long wall (8+ meters ideal)
- Plenty of sticky notes (all colors)
- Markers for everyone
- Tape or sticky wall
- Timer visible to all
- Refreshments available
Virtual Alternatives:
- Miro / Mural / FigJam
- Unlimited canvas
- Sticky note templates
- Timer integration
- Breakout rooms for parallel work
Facilitation Tips
Effective Facilitation:
DO:
✓ Keep energy high
✓ Enforce timeline direction
✓ Encourage questions
✓ Capture hot spots immediately
✓ Rotate facilitation if long session
✓ Take breaks every 90 minutes
✓ Photograph results frequently
DON'T:
✗ Let one person dominate
✗ Jump to solutions
✗ Ignore quiet participants
✗ Skip hot spot discussion
✗ Allow technology discussion too early
✗ Forget to capture decisions
Workflow
When conducting Event Storming:
- Prepare: Room, materials, participants, scope
- Big Picture: Domain-wide event exploration
- Identify Hotspots: Mark uncertainties and conflicts
- Find Boundaries: Sketch bounded contexts
- Select Focus: Choose process for deep dive
- Process Level: Detail commands, policies, read models
- Design Level: Define aggregates and invariants
- Document: Capture results in structured format
- Iterate: Refine based on implementation feedback
References
For detailed guidance:
Last Updated: 2025-12-26
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-02-04
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!