1

CQRSでは、イベントソーシングが唯一の真の情報源であり、読み取りデータモデルを決して信頼しないでください。たとえば、「ユーザーXの最後の10アクション」などを表示する確認メッセージボックスを表示する必要がある場合、どのアプローチを使用する必要がありますか?

1 - 最後の 10 個のアクションを集計に照会するコマンドを送信し、集計はユーザーのアクションを含む UI で処理する 10 個のイベントを発行しますか?

2 - または単に、私の Read モデルをクエリしますか?

私の場合、CQRSは何と言っていますか?

みんなありがとう。

ジョンスミス

4

1 に答える 1

1

読み取りモデルを信頼しないということは、書き込みデータベースからデータを読み取る必要があるという意味ではありません。つまり、読み取りモデルのデータが無効になる可能性があります。この場合、イベント ハンドラーでいくつかの修正を行う必要があります。書き込みデータベースのみを信頼するため、イベントから読み取りデータベースを再構築します (データベースの書き込み)。

簡単なルール (少なくとも私はこれらのルールに従っています):

  1. read database から常にデータを読み取ります。
  2. AR にイベントを適用する前に何かを検証する必要がある場合、およびイベントをリプレイする必要がある場合にのみ、集約ルートにアクセスできます (ドメイン内では、AR にアクセスするためのメソッドは GetById のみである必要があります)。

あなたの例ではすべてが単純です:ユーザーARメッセージを処理し、イベントをフォーマットで保存します(イベントを保存するだけでなく、イベントからデータをマップする必要があります)、ユーザー内(nosqlデータベースの場合はネストされたコレクション)、またはsqlの場合は別のテーブルに必要ですデータベース。

于 2011-07-29T06:55:10.523 に答える