ドメインイベント: 集約間の疎結合な連携
DDD のドメインイベント (Domain Event) を OrderConfirmed などの実装例で解説。イベント駆動による疎結合、記録 (Record) とディスパッチ (Dispatch) の 2 フェーズ実装、Laravel Events との統合、同期 / 非同期 (ShouldQueue)、冪等性と結果整合性の設計をまとめます。
DDD のドメインイベント (Domain Event) を OrderConfirmed などの実装例で解説。イベント駆動による疎結合、記録 (Record) とディスパッチ (Dispatch) の 2 フェーズ実装、Laravel Events との統合、同期 / 非同期 (ShouldQueue)、冪等性と結果整合性の設計をまとめます。
ドメインイベントを別のアプリケーションへ届けるために、あいだに立つメッセージブローカーが何を引き受けているかを、保持・分配・再配送・順序の 4 つに分けて見ます。Kafka・RabbitMQ・SQS で型が違う点、at-least-once を前提にした設計、保存と送信を 1 つのトランザクションに入れる Outbox パターンを扱います。