8

私はEventStoreについて多くのことを見てきましたが、すべての記事はCQRSについての話と結びついています。

EventStoresを使用して境界付きコンテキストを統合しますが、集約の読み取り/書き込みには従来のORMを使用して、コマンド/クエリと個別の読み取りモデルを使用しないようにします。この場合、複雑さが増します。

両方の概念について一緒に話すことが非常に人気があるので、それらは一緒に暮らすことを意図していると信じられます-アグリゲート/ CQRS /読み取りモデルにもEventStoreを実装する場合と比較して、CQRSなしでEventStore「ライト」を実行することの落とし穴はありますか?

4

2 に答える 2

4

NoSql Distilledまで実行します-数日間何もしないで、それを読んで何を求めているのかを引き出すことで、多くの時間を節約できます。「アグリゲートの読み取り/書き込み」を行う場合は、その主要なRavenDBなどのデータベースを検討する必要があります。

イベントストアタグはJOliverイベントストア用であり、主要なアーキテクチャの概念として使用されていることに注意してください。

また、イベントを生成するために少し逆行することもあります。ドメインは、それを容易にするために特定の方法で構築されます。あなたが質問に物事を置く方法と対照的な重要なこと(言い換えると、ひどくおよび/または不当に:私はイベントを保存するためだけにイベントストアを使用したい-残りは自分で行うことができます)

  1. イベントは集約によってバッチ処理されます-イベントの管理の実際の単位

  2. 何かに派遣。

イベントソースのドメインモデルが必要ない場合は、キュー管理ソリューションを調べてください。これは非常に正当なことです。イベントストアが一般化されたイベントパブのサブキューであると偽ってはいけません。

読み取りモデルを構築するディスパッチャープロジェクトを非正規化するのは簡単です。あらゆる種類のエキゾチックなものを使用できますが、SQLSBのような使い慣れたツールとPetaPocoのような単純なデータベースレイヤーを使用すると問題ありません。

CommonDomainとEventStoreで実際にスパイクを実行しましたか?nugetのreadmeドキュメントを読んだことがありますか?2つのJOliverビデオを見たことがありますか?

于 2013-03-27T21:49:05.703 に答える
1

EventStoresを使用して制限付きコンテキストを統合したい

イベントストアをメッセージキューとして使用することができ、永続的であり、新しいサブスクライバーが過去のすべてのイベントを要求できるという追加の利点があります。

ただし、集約の読み取り/書き込みには従来のORMを使用して、コマンド/クエリと個別の読み取りモデルを使用しないようにします。この場合、複雑さが増します。

余談ですが、動作モデルではなく、クエリに別の読み取りモデルを使用するだけで、CQRSの利点の一部を得ることができます。

全体として、イベントソーシングを使用せずにEventStoreを使用できますが、統合シナリオのすべての要件をサポートしていることを確認する必要があります。イベントストアに加えて、他のコンポーネントが必要な場合があります。より一般的には、イベントストアを使用して任意の時系列データを保存できます。

于 2013-03-27T15:31:33.840 に答える