From ddd-skills
ドメインイベントの特定・設計と対話的なイベントストーミングのファシリテーションを行う。 次のような依頼があったときに使う:「ドメインイベントを抽出する」 「イベントストーミングをする」「ドメインイベントを設計する」「イベントを洗い出す」 「domain eventを定義する」「イベント駆動にする」「イベント設計をレビューする」 「イベントの粒度を見直す」。 または、ドメインイベント、イベントストーミング、event storming、イベント駆動に言及する場合にも使う。
How this skill is triggered — by the user, by Claude, or both
Slash command
/ddd-skills:domain-event [ドメインやビジネスプロセスの説明][ドメインやビジネスプロセスの説明]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
DDD におけるドメインイベントの特定・設計と、対話的なイベントストーミングのファシリテーションを行う。
DDD におけるドメインイベントの特定・設計と、対話的なイベントストーミングのファシリテーションを行う。
ドメインで発生した重要な出来事を表す不変のオブジェクトである。過去形で命名し、ビジネス上の意味を持つ事象のみをイベントとする。
命名規則:
OrderPlaced, PaymentReceived, ShipmentDeliveredDataSaved, RecordUpdated)は使わないOrderChanged ではなく OrderItemAdded, OrderCancelledユーザーと対話しながらイベントを洗い出す。以下のステップで進行する。
まず以下の質問でプロセスの始点と終点を特定する:
時系列でイベントを列挙する。以下の質問を繰り返す:
洗い出したイベントを以下の観点で整理する:
| 分類 | 説明 | 例 |
|---|---|---|
| コマンド | イベントを発生させるアクション | PlaceOrder, CancelOrder |
| ドメインイベント | 発生した事実 | OrderPlaced, OrderCancelled |
| ポリシー/リアクション | イベントに反応する処理 | 在庫引当、通知送信 |
| 外部システム | 連携先 | 決済ゲートウェイ、配送API |
| 集約 | イベントを発行するエンティティ | Order, Payment |
整理結果を可視化する:
[コマンド] → [集約] → [ドメインイベント] → [ポリシー] → [次のコマンド]
イベント名(過去形)
├── イベントID(一意識別子)
├── 発生日時
├── 集約ID(発行元の識別子)
├── イベントデータ(状態変更の内容)
└── メタデータ(相関ID、因果関係ID等)
設計原則:
イベントの粒度は適切か?
├─ 1つのビジネス事実を表す → 適切
├─ 複数の事実を含む → 分割する
├─ 技術的な変更を表す → ドメインイベントではない
└─ 受信側が不要な情報が多い → 分割または情報を削る
| パターン | 用途 | 複雑度 |
|---|---|---|
| ドメインイベント | 同一コンテキスト内の副作用 | 低 |
| 統合イベント | コンテキスト間の連携 | 中 |
| Event Sourcing | イベントを唯一の真実の源とする | 高 |
注意: Event Sourcing は必要になるまで導入しない。ドメインイベントから始めて段階的に進化させる。
OrderUpdated のような汎用イベント → 具体的なビジネスイベントにするDatabaseRecordInserted → ドメイン用語で命名するexamples/ ディレクトリに具体例がある:
examples/event-storming-result.md — EC サイトのイベントストーミング結果例npx claudepluginhub dskst/ddd-skills --plugin ddd-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.