いつ読むか?

  • ドメインイベントの概要から実践まで包括的に理解したいとき

読書メモ

Domain Eventとは

  • ドメイン専門家が関心を持つ「過去に起きた出来事」を表現するモデル
  • Aggregateによって発行される

3つの実装パターン

  1. 静的Publisherパターン: Aggregateが直接通知。シンプルだが副作用が強い
  2. 戻り値パターン: Commandの返り値としてイベントを返す。処理順序を制御可能
  3. 保持パターン: Aggregateが内部にイベントを保持。クライアント責務を軽減

設計の原則

  • 不変性: 過去の出来事なので変更不可
  • 独立性: 1つの出来事を1つのイベントで表現
  • 完全な情報: 復元に必要な全情報を含める
  • バージョニング: スキーマ進化を考慮

実践的なポイント

  • フレームワークに依存せずコアドメインとして実装
  • Outboxパターンで永続化と外部通知の整合性を担保