私は積極的にCQRS +イベントソーシングを使用しているプロジェクトに移動しました。最初の一見から、すべての本とブログに基づいて実装されましたが、最終的には、実装ではっきりとしたものが実現しました。ここでCQRSを使用したサイド実装のアプローチを読む
はCQRSアーキテクチャです:
は、もともと私はhereからこの写真を撮りました。
読み込み側はキューからイベントを受け取り、それを1組ずつ異なる投影セット(非正規化器)に渡し、結果のViewModelがAddOrUpdateメソッドを介してDBに保存されます。だから私は写真から理解するように、非正規化はイベント自体と読み取り側DBのデータにのみ依存することができます。 例:
- アカウントビューは既にdbに保存されています。
- EmailChangedイベントが
- に到着私たちは、私たちが戻ってDBにアカウントを保存し、それをメールで送信チェンジ
- を適用DB
- からアカウントビューをお読みください。
別のケース(一部商品の数を数え、注文を言う):
- OrderCreatedイベントが
- に到着我々はのnumberOfが以前インクリメント
- 注文を到着し、これを保存表しViewModelにをお読みください。
これらのイベントはすべて、ドメインモデルで変更された通知機能としてのみ使用されます。したがって、我々が行うこと:
- 私たちはドメインリポジトリを取り、すべての必要な集約を読みます。そうすることで、私たちは彼らの最新の状態を取得します。
- 私達はちょうど私たちは私たちのプロジェクトで使用したアプローチは、私には少し奇妙に見える、私はそれのすべての欠点を見ることができない
Dbのにスクラッチ
私が本からのアプローチを使用する場合、再構築のために私のシステムのどこかに別のutilsロジックを持たなければなりません。我々はこのために必要なもの:読み出し側
- ドロップ初め
- からイベント・ストアからすべてのイベントが
予測を介してそれらを渡し読むだから私の質問は以下のとおりです。
ここで正しいアプローチは何ですか?
予測記事のリンク先は次のとおりです:http://abdullin.com/post/event-sourcing-projections/ –