1

イベントソーシングを使用しているときに、2つの限定されたコンテキストを最終的に一貫性を保つことができるという質問に対する答えを見つけていますか?あるコンテキストのエンティティから別のコンテキストの値オブジェクトにいくつかの値を複製したということです。値が変更されたときにドメインイベントを使用して通知を受け取ることはできますが、それらの値を使用するイベントストア内のすべての集約を更新するにはどうすればよいですか?イベントストアから集計を照会するのは、id以外のプロパティでは困難です。イベントソーシング:最終的に一貫性のある限定されたコンテキスト

例:

IDコンテキスト:

  • ユーザー(ID、ユーザ名、パスワード、電子メール) - 集約ルート

ディスカッションコンテキスト:

  • 著者(ID 、userame) - 値オブジェクト(これらの値はIDコンテキストからのものです)
  • メッセージ(ID、コンテンツ、作者) - 集約ルート

答えて

1

私は(AuthorId, username)値オブジェクトを作ることは、ここでは良い選択であるか分かりません。

  • Usernameは、Message集合体にあるデータの重要な部分ではない可能性があります。ユーザー名に基づいて集約される不変のものは何ですか?

  • あなたはおそらくCQRSを用意しています(そうではありませんか?)ので、メッセージのユーザー名は集約自体ではなく読み込みモデルを通じて取得できます。

ディスカッションコンテキストに独立したAuthor集約を作成し、AuthorIdのみがメッセージを参照します。アイデンティティからイベントが到着したら、AuthorIdによって集約を見つけて、それに何かする必要があります。

+0

はい、これは問題を解決する良い方法です。 – Toni

+0

私は同意します、それはそれ自身のアイデンティティを持っているので、値オブジェクトであってはなりません。それは単純化されたエンティティです。 –

関連する問題