eventmodeling-designing-event-models
Designing Event Models
Interview Phase (Optional)
When to Interview: Skip if the user has specified: stream identity strategy, command-specific state needs, and read model requirements. Interview when stream boundaries or state design are unclear.
Interview Strategy: Establish stream identity and per-command state boundaries before designing. Ambiguous boundaries are the primary cause of the DDD aggregate anti-pattern appearing in event-sourced models.
Critical Questions
-
Stream Identity (Impact: Determines how events are grouped into streams)
- Question: "What's the entity that owns events? (e.g., orderId, reviewId, customerId) What's the lifetime? Single transaction or years?"
- Why it matters: Wrong stream identity causes design problems; correct identity keeps streams appropriately scoped
- Follow-up triggers: If multiple candidates → ask "Which entity's identity would you use to load events for a single command decision?"
-
Minimal State vs Bundled State (Impact: Prevents DDD aggregate anti-pattern)
- Question: "Will different commands need different state? Or does every command need the same full state?"
- Why it matters: Each command should have minimal, command-specific state—not bundled DDD aggregates
- Follow-up triggers: If "same full state" → walk through two commands and ask what each actually reads during validation
More from trogonstack/agentskills
diataxis-organize-docs
Reorganize documentation into the Diataxis framework structure. Splits existing docs into tutorials, how-to guides, reference, and explanation sections.
45datadog-design-dashboard
>-
36diataxis-gen-readme
Generate a README introduction following the Diataxis 4-paragraph structure for product documentation.
31nats-design-subject
>-
30gh-enrich-pr-description
Enrich GitHub PR descriptions with root-cause context, related issues/PRs, and CC mentions. Use when creating or editing a PR, when a PR has an empty or sparse description, or when the user asks to improve a PR description.
26ask-question
>-
23