event-storming
/event-storming
Prowadzi odkrywanie domeny przez zdarzenia, komendy, aktorów, polityki, agregaty, modele odczytu i systemy zewnętrzne, zanim zacznie się implementacja.
- Autor
- jacob-balslev ↗
- Repozytorium
- skill-graph ↗
- Licencja
- Apache-2.0
- Ostatnia zmiana repozytorium
- 16.06.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 2
- Adresy URL w SKILL.md
- 1
Brak sygnałów. Repozytorium zmienione 16.06.2026, bez odwołań do wycofanych modeli i API.
Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.
- SKILL.md zawiera komentarze HTML (2). Nie widać ich w podglądzie Markdown, a model je czyta.
Co robi i kiedy
Prowadzi odkrywanie domeny przez zdarzenia, komendy, aktorów, polityki, agregaty, modele odczytu i systemy zewnętrzne, zanim zacznie się implementacja.
Oryginalny opis (EN)
Use when discovering a domain through events, commands, actors, policies, aggregates, read models, external systems, and temporal workflows before implementation. Do NOT use for event schema/topic contracts (use `event-contract-design`), webhook handler implementation (use `webhook-integration`), generic state transition modeling (use `state-machine-modeling`), or persistence schema design (use `entity-relationship-modeling`). Do NOT use for implement Shopify webhook signature verification and idempotent retries. Do NOT use for draw the state machine for this one status field. Do NOT use for c
Jak działa
- Concept of the skill
- Coverage
- Philosophy of the skill
- Method
- Verification
- Do NOT Use When
- Skill Graph context
Podgląd SKILL.md
---
name: event-storming
description: "Use when discovering a domain through events, commands, actors, policies, aggregates, read models, external systems, and temporal workflows before implementation. Do NOT use for event schema/topic contracts (use `event-contract-design`), webhook handler implementation (use `webhook-integration`), generic state transition modeling (use `state-machine-modeling`), or persistence schema design (use `entity-relationship-modeling`). Do NOT use for implement Shopify webhook signature verification and idempotent retries. Do NOT use for draw the state machine for this one status field. Do NOT use for create a normalized data model and indexes. Do NOT use for write event-bus infrastructure code. Do NOT use for define the schema, topic, compatibility, and fixtures for a selected event."
license: MIT
compatibility: "Portable event-storming discipline for product discovery, domain modeling, event-driven architecture, and workflow analysis."
allowed-tools: Read Grep
metadata:
relations: "{\"related\":[\"system-interface-contracts\",\"webhook-integration\",\"api-design\",\"state-machine-modeling\",\"event-contract-design\",\"conceptual-modeling\"],\"suppresses\":[\"event-contract-design\",\"state-machine-modeling\",\"entity-relationship-modeling\"],\"verify_with\":[\"conceptual-modeling\",\"system-interface-contracts\"]}"
subject: software-architecture
public: "true"
scope: "Use when discovering a domain through events, commands, actors, policies, aggregates, read models, external systems, and temporal workflows before implementation. Do NOT use for event schema/topic contracts (use `event-contract-design`), webhook handler implementation (use `webhook-integration`), generic state transition modeling (use `state-machine-modeling`), or persistence schema design (use `entity-relationship-modeling`)."
taxonomy_domain: architecture/domain-discovery
stability: experimental
keywords: "[\"event storming\",\"domain events\",\"commands\",\"aggregates\",\"policies\",\"read models\",\"temporal workflow\",\"event-driven discovery\",\"process modeling\"]"
examples: "[\"map the order lifecycle as domain events before we design tables or APIs\",\"which commands, policies, and external systems are hidden in this workflow?\",\"use event storming to find aggregate boundaries for fulfillment\",\"turn this incident-prone business process into events and decisions\"]"
anti_examples: "[\"implement Shopify webhook signature verification and idempotent retries\",\"draw the state machine for this one status field\",\"create a normalized data model and indexes\",\"write event-bus infrastructure code\",\"define the schema, topic, compatibility, and fixtures for a selected event\"]"
skill_graph_source_repo: "https://github.com/jacob-balslev/skill-graph"
skill_graph_project: Skill Graph
skill_graph_canonical_skill: skills/software-architecture/event-storming/SKILL.md
skill_graph_export_description_projection: anti_examples
---
# Event Storming
## Concept of the skill
Use when discovering a domain through events, commands, actors, policies, aggregates, read models, external systems, and temporal workflows before implementation.
## Coverage
Discover domain behavior through temporal events and decisions. Covers domain events, commands, actors, policies, aggregates, read models, external systems, hotspots, timelines, invariants, and handoff into bounded-context, state-machine, data, and API design.
## Philosophy of the skill
Event storming starts from "what happened" because events expose real business flow faster than nouns do. Noun-first modeling often freezes premature assumptions. Event-first modeling reveals time, causality, policy, and exceptions.
Do not confuse domain events with technical notifications. "OrderPlaced" is business meaning. "WebhookReceived" is transport detail.
## Method
1. List domain events in past tense.
2. Place them on a timeline.
3. Add commands that cause events.
4. Add actors and external systems that issue commands or receive outcomes.
5. Add policies: "when event X happens, if condition Y, then command Z."
6. Identify aggregates that enforce invariants.
7. Mark hotspots, missing decisions, temporal ambiguity, and unclear ownership.
8. Hand off to bounded-context, state-machine, data, or API design only after the flow is coherent.
## Verification
- [ ] Events are named in past tense and carry business meaning
- [ ] Commands are imperative and have actors or policies
- [ ] Policies are explicit condition-action rules
- [ ] Aggregates are tied to invariants, not guessed from nouns
- [ ] External systems and transport details are separated from domain events
- [ ] Hotspots and unanswered questions are recorded
- [ ] The timeline can replay a real scenario end to end
## Do NOT Use When
| Use instead | When |
|---|---|
| `webhook-integration` | You are implementing provider webhooks, signatures, retries, and deduplication. |
| `event-contract-design` | You already selected the event and need schema, envelope, topic, compatibility, replay, or fixtures. |
| `state-machine-modeling` | You already know the lifecycle and need formal states, transitions, and guards. |
| `entity-relationship-modeling` | You need tables, keys, indexes, constraints, or data lifecycle. |
| `api-design` | You need endpoint, request, response, and status-code design. |
## Skill Graph context
<!-- skill-graph-context:start (generated — do not edit by hand) -->
**Classification**
- Subject: `software-architecture`
- Public: `true`
- Domain: `architecture/domain-discovery`
- Scope: Use when discovering a domain through events, commands, actors, policies, aggregates, read models, external systems, and temporal workflows before implementation. Do NOT use for event schema/topic contracts (use `event-contract-design`), webhook handler implementation (use `webhook-integration`), generic state transition modeling (use `state-machine-modeling`), or persistence schema design (use `entity-relationship-modeling`).
**When to use**
- map the order lifecycle as domain events before we design tables or APIs
- which commands, policies, and external systems are hidden in this workflow?
- use event storming to find aggregate boundaries for fulfillment
- turn this incident-prone business process into events and decisions
**Not for**
- implement Shopify webhook signature verification and idempotent retries
- draw the state machine for this one status field
- create a normalized data model and indexes
- write event-bus infrastructure code
- define the schema, topic, compatibility, and fixtures for a selected event
**Related skills**
- Verify with: `conceptual-modeling`, `system-interface-contracts`
- Related: `system-interface-contracts`, `webhook-integration`, `api-design`, `state-machine-modeling`, `event-contract-design`, `conceptual-modeling`
**Keywords**
- `event storming`, `domain events`, `commands`, `aggregates`, `policies`, `read models`, `temporal workflow`, `event-driven discovery`, `process modeling`
<!-- skill-graph-context:end -->
Wersje
W bazie nie ma innych skilli o nazwie event-storming.
Migawka bazy z 28.10.2026 · wersja paczki 24869363a4dc (skrót SHA-256 całej paczki)
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 100state-machine-modeling
Modeluje stany cyklu życia, przejścia, strażników, zdarzenia, skutki uboczne, stany niepoprawne, ponowienia i niezmienniki dla workflowów lub obiektów domenowych. - 100domain-driven-design
Doradza przy architekturze i implementacji Domain-Driven Design: konteksty ograniczone, modele domenowe, wybór między modularnym monolitem a mikroserwisami, agregaty, encje, obiekty wartości i event storming. - 100event-modeling
Prowadzi event modeling do odkrywania i projektowania systemów event-sourced w 9 krokach, w tym scenariusze Given/When/Then dla komend i widoków oraz walidację modeli. - 100ddd-domain-designer
Prowadzi przez pełny proces modelowania domeny DDD: sześciokrokowy Event Storming, zasady projektowania agregatów, konteksty ograniczone, wzorce encji i obiektów wartości, katalog zdarzeń i mapowanie na kod. - 100event-contract-design
Projektuje i recenzuje kontrakty zdarzeń asynchronicznych: właściciele, koperta, schemat, nazewnictwo tematów, kolejność, idempotencja, wersjonowanie, replay, dead-letter i dokumentacja AsyncAPI lub CloudEvents. - 100event-model
Tworzy lub rozszerza plik DSL Event Model z opisu w języku naturalnym: aktorzy, agregaty, UI, komendy, zdarzenia domenowe i zewnętrzne, modele odczytu i automatyzacje według gramatyki projektu.