Instruction file imported from yodakeisuke/domain-parser-sample-accounting-product (
.cursor/rules/domain_parser/aggeregate/event_storming/how-to-read-eventstorming.mdc). Copyright stays with the author.
Event Storming Reading Guidelines
Purpose:
To accurately interpret the event storming diagram by understanding the roles of each component and applying consistent rules for system behavior analysis.
Legend
| Color | Component | Description & Examples |
|---|---|---|
| Blue | Command | Request for an action on the systemExample: Create Order, Add Item |
| Orange | Event | Outcome or occurrence resulting from an actionExample: Order Confirmed, Item Discontinued |
| Purple | Policy | Trigger activated when conditions are metExample: Update price every 10 minutes, Stop sale when stock is 0 |
| Dark Pink | External System | Systems or dependencies outside the primary systemExample: Payment Gateway, Warehouse Management System |
| Red | Hotspot/Debate | Critical discussion points or unresolved design issuesExample: Concurrency conflicts, Error handling design |
| Yellow | Constraint/Invariant | Business rules or immutable conditions (e.g., aggregation rules)Example: Maximum 10 items, Single order up to $10,000 |
| Light Green | Read Model | Internal state or aggregate model used by the systemExample: Order Aggregate, Product Entity |
| Green | View/Query | Presentation of information to users or aggregatesExample: Product List View, Order History View |
| Gray | Data/Details | Supplementary or attribute informationExample: Order Status, Product Details |
| Yellow | Actor | Role of a user or systemExample: Customer, Administrator, Automated Agent |
Reading Process
-
Start with Policies/Triggers:
Identify what triggers or policies initiate the process (e.g., "Update price every 10 minutes"). -
Identify Commands/Requests:
Determine which actions are executed as a result of the triggers (e.g., "Update Price"). -
Check the Events:
Recognize what events occur as a result of the commands (e.g., "Sales Price Changed"). -
Consider Constraints/Immutables:
Review any business rules or conditions that apply (e.g., "Order must be under $10,000"). -
Focus on Hotspots/Debates:
Pinpoint areas requiring further design discussion (e.g., concurrency handling, error processing). -
Analyze the Read Models:
Understand the internal aggregates or entities managed by the system (e.g., Order Entity, Product Entity). -
Assess External Systems:
Identify interactions with external systems (e.g., sending requests to a payment gateway). -
Review Views/Queries:
Determine how information is presented to users (e.g., Order History View, Product List). -
Organize Actor Relationships:
Clarify which actor interacts with which process (e.g., Customer confirms order).
