- URL: 集約はイベントから考えると考えやすい|j5ik2o
- 著者: 加藤潤一 ( @j5ik2o)
- 公開日: 2023-11-30
いつ読むか?
- ES + CQRS の具体的な設計・実装例を見たいとき
- DDD をイベントソーシングで実践したいとき
読書メモ
要点
集約の設計で迷ったら、イベント(起きた事実)から逆算して考える。
手順
- イベントを列挙(「出勤した」「退勤した」など)
- イベントからコマンドを導出
- 用語の不整合を修正して統一
- コマンドを受けてイベントを生成する集約を定義
- 状態更新に必要な属性のみに絞る
ポイント
- 集約は状態更新に必要な属性しか持たない
- 状態は計算で導出できるなら属性として持たない(例:出退勤時間があれば勤務状態は計算可能)
- 用語の不統一は設計の問題を示唆する
実践タイミング
- 集約の責務や属性で迷ったとき
- イベントソーシングを検討するとき