Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【ミライトデザイン社内勉強会#17】「IDDD本から理解するドメイン駆動設計」輪読会~第8章「ドメインイベント」~

前回の記事

【ミライトデザイン社内勉強会#16】「IDDD本から理解するドメイン駆動設計」輪読会~第7章「ドメインサービス」~ - Qiita

実践DDD本 第8章「ドメインイベント」~出来事を記録して活用~ (1/3):CodeZine(コードジン)

ドメインイベントがどんな時に必要になるのかが、イメージがわかない。重要なイベントはドメインイベントにしといた方がメリットあるよって話?

  • 複数の集約の操作をしたい時とか(トランザクションをまたいだ処理)
  • メール送信とか複数の人に送ると意外と時間がかかるので、イベントに切り出して、別のサーバーで実行するとか
  • 一般的なシステムは××が起きたから〇〇をするっていう作りになっている
    • ドメインイベントは××が起きたまでを管理している
      • 結果整合性を用いたシステムを作る時に役にたつ
      • 例えば、××が起きた時(イベントがあった時)にはAとBを更新するって処理があった時に、ドメインイベントとしてイベント分離されているとA、B以外のCの処理を追加したい。ってなった時に楽に追加することができる
  • 結果生合成を保つ目的であればドメインイベントを使用しなくても実装は可能。
    • トランザクションを広げる。
    • しかし、トランザクションは単一の集約に対して変更することを推奨している為、ドメインイベントを作成することでトランザクションを分散することができる

他システム(他の境界づけられたコンテキスト)とのイベント送受信で1と3の違いがいまいちわからない

p2

メッセージ基盤
  • メッセージだけを責務とした基盤
    • A、Bというインスタンスがあったらそのやりとりを仲介する基盤
    • メッセージというのはキューであったりイベントであったり決まりはない

ユースケースで複数の集約を操作する場合にイベントをトリガーに処理を分けようってこと?

  • ドメインイベントを発行するユースケースで行うのはドメインイベントの発行まで
  • ドメインイベントを受け取ってその後どうするかは、責務が別になる(ドメインイベントを受け取った側が考える)
tkek321
自分用のメモくらいに使おうかなと思ってます。 マサカリ募集。
yyphp
PHPerが毎週集まり、ざっくばらんに情報交換する雑談コミュニティ
https://yyphp.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away