つの質問 1)集計とどのように彼らはイベントソーシング - 集計モデリングモデリングする方法
効率的に取り出すことができるように/ストアイベントを開催するためにそれらの間の基準 2)の例として、この典型的なユースケースを取り、我々 OrderとLineItem(これは集合体で、Orderは集合体のルートです)とProduct集合体を持ちます。 LineItemはどのProductを知る必要があるので、2つのオプションがあります。1)LineItemはProduct集約を直接参照しています(これはベストプラクティスではないと思われます。 Order aggregate)2)LineItemにはProductIdしかありません。
2番目のオプションのように見えますが...ここではどう思いますか?
しかし、注文読取り/表示モデルを構築することに関するもう1つの問題が発生します。このオーダービューモデルでは、どのプロダクトがオーダーにあるかを知る必要があります(商品ID、タイプなど)。典型的な使用事例は報告であり、CommandHandlerはこのProductオブジェクトを使用して、特定の製品などが多すぎるかどうかなどのロジックを実行することもできます。そのためには、それらのデータが2つの別々の集合体1 +データベース往復が必要です。モデルを構築するためにイベントを使用しているので、擬似コードは以下のようになります 1)与えられた注文ID(guid、order aggregate id)に対して、すべてのイベントをロードします。 - 1番目のデータベースへのアクセス 2)Order集計を作成し、OrderでどのProductIdが参照されているかを確認します。 3)ProductIdsのリストについては、すべてのイベントをロードします。 - 2番目のデータベースへのアクセス
オブジェクトの実際の大きなグラフ(異なる集合体)を作成すると、データベースアクセスがもう少し遅くなる可能性があります。ここに?
おかげ