問題タブ [commondomain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cqrs - J Oliver EventStore V2.0 CommonDomain スナップショット
EventStore と CommonDomain を使用するときに集約のスナップショットを作成するためのベスト プラクティスと考えられるものは何ですか?
cqrs - JOliviers の CommonDomain と EventStore を使用して集計のリストを取得するには?
CommonDomain のリポジトリは、「GetById()」のみを公開します。たとえば、ハンドラーが顧客のリストを必要とする場合はどうすればよいでしょうか?
cqrs - J Oliver EventStore/CommonDomain SagaBase
Jonathan Oliver の CommonDomain ライブラリで SagaBase が一般的なのはなぜですか?
cqrs - CommonDomain/EventStoreインターフェイスのフェッチ
実装するインターフェースを使用して集約ルートにアクセスしたいのですが、次のようになります。
これを実現するには、CommonDomainまたはEventStoreに何を伝える必要がありますか?IConstructAggregatesは、イベントを格納したアグリゲートの実装タイプを受け取ると思います。自分のIDマップを保持する必要がありますか?
たとえば、私がこれらのaggのルーツを持っているとしましょう:
'idFromAggRoot1'を持つaggregate1インスタンスをすでに保存しました。今、私はそのようにフェッチしたい:
IInterface1には2つの実装者がいるので、後で何を作成する必要があるかをどのように知ることができますか?AggRoot1?AggRoot2?IInterface1?アクティベーターはここで爆撃するので、IConstructAggregatesを実装する必要があることはわかっていますが、元のcommitaggrootタイプを教えてくれる他の記述子があるかどうか疑問に思います。
cqrs - NCQRSとJOliverEventStore
NCQRSとJOliverのEventStoreの両方を評価した人はいますか?どちらか一方に大きな利点がありますか、それとも異なるオーディエンスを対象としていますか?
私が見たもの:
NCQRSには、NServiceBusのサポートが組み込まれています。サポートされているNSBのバージョンはわかりませんが、NSBでのライセンスの変更により、これが私のプロジェクトの問題になっています。NSB2.1を永遠に使い続けたいとは思わないでください。私はおそらくMassTransitまたはRSBにもっと目を向けているでしょう。NCQRSには、私のような初心者に喜ばれるかなりの量の「はじめに」のヘルプもあるようです。
EventStoreにはバスメカニズムへのフックがあるように見えますが、組み込みの実装はありません(間違っている可能性があります)。EventStoreは3.0リリースでかなりの量の最近の活動をしているようですが、いくつかの簡単なコード例と私が見つけたポッドキャストを除いて、特に初心者にとっては、ふるいにかける以外に多くの助けはないようです。スタックオーバーフローまたはグループ。
既存の比較がある場合は、その方向に私を向けてください。上記の私の仮定が正しくない場合は、私を訂正してください。
cqrs - JO の CommonDomain で AR バージョンをそのイベントと共にディスパッチする
Aggregate の現在のバージョンを Read Model に伝える正しい方法を探しています。現在、私が見る唯一の可能性は、次のことを行うことです。
Aggregate はすべての読み取り側イベント ハンドラーに AR バージョンを自動的にディスパッチする必要があると思うので、私はそれが好きではありません。
これを行う他の方法はありますか?
transactions - 方法: 単一のトランザクションを使用して、複数の集計の更新にまたがる
このアプリケーションでは、Jonathan Oliver の EventStore と CommonDomain を使用しています。イベントの保存に使用するデータベースは、SQL Server または Oracle です。
特定のユース ケースでは、1 つのコマンドで複数の集計を更新する必要があります。(CQRS では) 理想的には 1 つのコマンドで 1 つの集計のみを更新する必要があることを認識していますが、この場合、一度に複数のインスタンスを更新することが特定の要件です。
この操作をアトミックにする簡単な方法 (2 フェーズ コミットを使用せずに) はありますか?
編集: 質問は、EventStore フレームワーク (およびおそらく CommonDomain フレームワークのリポジトリ) の使用に固有のものです。これは、トランザクション処理または Unit Of Work パターンに関する一般的な質問ではありません (私はよく知っています)。
cqrs - CommonDomain/EventStore/CQRS : commondomain のテスト プロジェクトはどこにありますか?
GitHub から CommonDomain をダウンロードしました。ディレクトリが表示されます
ファイル「When_an_aggregate_is_persisted.cs」が含まれていますが、それを使用するプロジェクトはありません。また、基本クラス「in_the_event_store」が欠落しているようです。FakeBus、IDomainEvent、SynchronousDispatcher などへの参照もあります。
nservicebus - EventStoreで同時実行例外を処理する適切な方法は何ですか?
JOliver EventStore 3.0を使用し、NServiceBusからコマンドを受信する場合、同時実行の例外を処理する適切な方法は何ですか?複数のワーカースレッドがある場合、これはよくあることです。
オプション1
オプション2
NServiceBusにスローバックし、構成からMsMqTransportConfig.MaxRetriesオプションを使用して再試行します。
オプション3
私が考えていないことは?
unit-testing - CommonDomain - 集計ルートを単体テストする方法
Jonathan Oliver のCommonDomainとEventStoreを使用する小さなシステムがあります。
正しいイベントが発生することを確認するために、集約ルートを単体テストするにはどうすればよいですか?
次の集約ルートを検討してください。
次のテストを書きたいと思います。
メモリ永続性と同期ディスパッチャーを使用して EventStore 全体をセットアップし、モック イベント ハンドラーを接続して、発行されたイベントを検証用に保存することもできますが、少しやり過ぎに思えます。
IRouteEvents
CommonDomain にはインターフェースがあります。イベントを直接取得するためにモックできるように見えますが、AggregateBase
実際にSubscriber
クラスに渡すにはどうすればよいでしょうか? ドミアンをテスト関連のコードで「汚染」したくありません。