CQRSのドメインクエリ 質問する

CQRSのドメインクエリ 質問する

私たちは試していますCQRS検証の状況として、CustomerService (ドメイン サービス) が顧客が存在するかどうかを知る必要があります。顧客は電子メール アドレスによって一意です。Customer リポジトリ (汎用リポジトリ) には Get(id) と Add(customer) しかありません。CustomerService はどのようにして顧客が存在するかどうかを確認すればよいでしょうか。

ベストアンサー1

こちらのブログ投稿をご覧ください:CQRS アーキテクチャにおけるセットベースの検証

これはまさにこの問題に対処します。これは CQRS で対処するには複雑な問題です。Bjarte が提案しているのは、レポート データベースで既存の顧客電子メール アドレスを照会し、電子メール アドレスがCustomerEmailAddressIsNotUniqueCompensatingCommand見つかった場合は、補正コマンド (など) をドメイン モデルに返すことです。その後、適切なイベント ( など) を起動できますUndoCustomerCreationEvent

代わりのアイデアについては、上記のブログ投稿のコメントを読んでください。

アダム D.コメントでは、検証はドメインの問題であると示唆されています。その結果、顧客の作成を容易にし、イベント ストア内のイベントによってハイドレーションされるサービスに ReservedEmailAddresses を保存できます。

この問題を完全にクリーンに感じられる簡単な解決策があるかどうかはわかりません。 どのような解決策が思いついたか教えてください。

幸運を!

おすすめ記事