event-storming-advanced
Deep dive Event Storming beyond big picture
What this skill does
# 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: 1. **Invoke `docs-management` skill** for Event Storming patterns 2. **Verify methodology** via MCP servers (perplexity) 3. **Base guidance on Alberto Brandolini's methodology** ## Event Storming Levels ```text 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 ```text 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 ```text 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 ```text 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 ```text 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 ```text 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 ```markdown # 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] ```text ``` ## Design Level Event Storming ### Purpose and Artifacts ```text 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 ```text 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 ```text 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 ```text 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 ```text Context Relationships: PARTNERSHIP [Context A] ◄──► [Context B] Tight collaboration, shared goals CUSTOMER-SUPPLIER [Customer] ◄── [Supplier] Supplier serves customer needs CONFORMIST [Conformist] ──► [Upstrea
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.