【ドメインイベント】
ドメインイベント とは?
最終更新:
💡 業務で起きた事実を、名前と情報で伝える
業務の中で起きた意味のある出来事を、業務の言葉で表したもの。「注文が確定した」などの事実を、同じドメイン内の別の処理に伝えます。外部サービスへの統合イベントとは区別します。
📌 このページのポイント
ドメインイベントは普通のイベントと違う?
イベントにはUI操作や通信などいろいろあるけど、ドメインイベントは業務上の意味を表すんだ。「クリックされた」ではなく「注文が確定した」のように、業務の言葉で説明できる出来事だよ。
どうやって名前を付ける?
OrderPlacedやPaymentCompletedのように、起きた事実を過去形で表すのが一般的だよ。「注文して」という要求とは違う。注文IDなど、受け取る処理が必要とする情報も一緒に持たせるんだ。
誰が受け取るの?
別サービスにもそのまま送る?
外部へ伝えるときは統合イベントと区別して設計しよう。業務データが確定してから発行し、公開する項目や互換性も決める。同じ名前や情報を使う場合でも、内部の変更が外部の契約を壊さないようにするんだ。
Outboxを使えば失敗しない?
もっと詳しく知りたい人へ
イベントソーシングと同じこと?
違います。ドメインイベントを使っても、現在の状態を通常のテーブルに保存できます。イベントソーシングは、イベントの履歴から状態を再構築する保存方式で、別の設計判断です。
まとめ:ざっくりこれだけ覚えればOK!
「ドメインイベント」って出てきたら「業務で起きた事実を伝えるもの」と思えばだいたいOK!
📖 おまけ:英語の意味
「Domain Event」 = 業務領域で起きた出来事
💬 Domainは業務領域、Eventは出来事。DDDでは業務の言葉で意味のある事実を表し、関連する処理を分けるために使います。