【ドメインイベント】
ドメインイベント とは?
💡 ビジネスの世界で起きた『大事件』を、システムにちゃんと伝える伝書鳩
📌 このページのポイント
ドメインイベントって普通のイベントと何が違うの?
どうやって名前を付けるの?
過去形で命名するのがお約束だよ。「注文が確定した」ならOrderPlaced、「支払いが完了した」ならPaymentCompleted。すでに起きた事実だから過去形なんだね
イベントを作ったら、誰がそれを受け取るの?
イベントハンドラーやサブスクライバーと呼ばれるコンポーネントだよ。たとえばOrderPlacedイベントを受け取って、在庫を減らしたり、確認メールを送ったりする。発行側と受信側が疎結合になるのが大きなメリットだね
マイクロサービスだと、別のサービスにもイベントを送れるの?
もちろん!同じプロセス内ならメモリ上のイベントバスで、別サービスならKafkaやRabbitMQなどのメッセージブローカーを通じて配信するよ。Outboxパターンと組み合わせれば、DBの整合性を保ちながら確実に外部に通知できるんだ
まとめ:ざっくりこれだけ覚えればOK!
「ドメインイベント」って出てきたら「業務上の重要な出来事をオブジェクトにしたもの」と思えればだいたいOK!
📖 おまけ:英語の意味
「Domain Event」 = ドメイン(業務領域)のイベント(出来事)
💬 Eric Evansが提唱したDDDの戦術パターンの一つ。ドメインの中で「何かが起きた」という事実をファーストクラスのオブジェクトとして扱うんだよ