2016-08-22 5 views
0

ドメインイベントに対して単一のMongoコレクション(domainevents)を使用することのパフォーマンスが心配です。Axonフレームワーク - 集約ルートごとに個別のMongoドメインイベントコレクションを使用する

domaineventsコレクションを集約ルートごとに別々のコレクションに分割することをお勧めしますか?

複数の集約ルートからのイベントに基づいて生成されるクエリモデルがあります。 domaineventsを複数のコレクションに分割すると、Axonは集約されたルート全体でイベントの順序を保持しますか?

これは一般的にはいいですか?

答えて

1

いくつかの質問がありますが、回答するには別の知識が必要です。私はMongoDBの専門家ではありませんが、創設者であるAxonの周りに私の道を知っています。

AxonのMongoEventStoreは、ドメインイベントの複数のコレクションをネイティブにサポートしていません。あなたの注文保存クエリへの答えはあなた自身のサポートを構築しない限り動作しません。そして、あなたがそれをどのように構築したかによって、注文は保証されます。

また、Mongoコレクションのシャーディングを検討することもできます。集計識別子をシャード鍵として使用すると、集約ストリームのクエリが単一のシャードに当たることを保証することができます。ドキュメントによると、このシャードキーを含まないクエリは避けることをお勧めします。

このパフォーマンスの問題に対処する最善の方法は、パフォーマンステストを行うことです。コレクションのサイズが大きくなるとレイテンシとスループットがどのように影響するかを確認してください。正しいインデックスを追加すると役立ちます。

関連する問題