2017-06-16 6 views
1

特定のリソースの読み取り回数を記録するにはどうすればよいですか?読まれたモデル自体でそれを行うことができますが、その情報を必要とするコマンド側(マイクロサービス)のロジックが同じ場合はどうなりますか? readmodelsがこれを記録するためにマイクロサービスにコマンドを送り返してもいいですか?私はリードモデル世代のコマンドをカバーしているこれらすべての年の例を見たことはありませんが、私はそれから離れ得るとは思わない。あなたの意見は何ですか?CQRS - 特定の読み取りのビュー数の生成

答えて

1

readmodelsがこれを記録するためにマイクロサービスにコマンドを送り返してもよろしいですか?

どこのサービスからでもコマンドを送信できます。おそらくそれを同期させたくないでしょう。誰かがビューを要求したことを記録するなど、根本的に間違ったことは何もありません。言い換えれば、読み込みモデルへのアクセスは、一般にHTTPで使用されるものと同様の意味で安全であると予想されます。破壊的な副作用は通常、読取りモデルの設計に組み込まれていません。

+0

コマンドを送信すると、私は唯一の存在にしたいカップリングのいくつかの余分なレベルに追加するので、私は実際には、昇給やイベントを言いたかったですWeb APIだから、ドメインの外部から生成されたドメイン内のイベント(読み込みモデル)を処理することは同じようにOKでしょうか?それに対して何もないかもしれませんが、それだけで論理です、私は実際にこれに基づいてドメイン上にいくつかの論理を持っているかもしれません。お返事をありがとうございます。 – Marco

+0

そしてHTTPのセクションのおかげで、私は数年前からCQRSを使用していましたが、それ以前には読んでいませんでした。 – Marco

1

IMHOこの質問に対する回答は、カウンターがあなたのドメインに関連しているかどうかによって異なります。書き込みモデルに関連しているということは、実際にはヒントです。

ドメインに関連するではなく、の場合、読み取りモデルのすべての単一アクセスでカウンタを更新するだけです。期間。

ドメインに関連する実際にの場合、これは別のコマンドをトリガーする必要があることを意味し、何らかのカウンタ集約に影響を与えます(またはこれをモデル化しています)。これは、このコマンドを送信できるオプションが2つしかないことを意味します。クライアント側または読み取りモデル自体のいずれかです。

コマンドの送信が常に行われるようにするには、どのクライアントが読み取りモデルにアクセスしても、実際に読み取りモデルに追加します。書き込みモデルの場合、これはコマンドがどこに届くかを気にしないので、これはまったく問題ありません。だから、

、短い長い話をカットする:はい、それは罰金:-)だ

+0

おかげさまでありがとうございました。 – Marco

+0

あなたは大歓迎です:-) –

関連する問題