私が作成した場合、単一のtable
(またはdocument databases
でdocument
)aggregate type
ごとに、私は、データベースをマージしたり、私がwrite
側のmicroservices
、とをリファクタリングするたびにそれらをシャードすることができ、結果アプリケーションとしてよりスケーラブルになり、ロードの速度も向上しますevents
。どのイベントソーシングイベントを保存するためにMongoDBのデータモデルを設計する
私はevent store
のように設計していますが、注意すべきことはありますか?
編集:
私は現在MongoDb
を使用しています。
collection
をaggregate id
ごとに作成するとどうなりますか? aggregate type
あたりdatabase
、およびcollection
1,aggregate id
...?
パフォーマンス、データ管理の容易性、保守性、またはスケーラビリティに問題がありますか?
役立つかもしれないあなたは、テーブルごとの集約型(テーブル内のすべてのイベント行)について話していますか集計インスタンスごとのドキュメント(インスタンスごとに1つのドキュメント、ドキュメント内の配列としてイベント、すべての集計に対して1つのコレクション) –
「MongoDBデータモデルを設計してイベントソーシングイベントを保存するにはどうすればよいのですか? – guillaume31
@ guillaume3:この種のイベントデータ設計は、非線形のイベントストア(すべての集合体が単一のテーブルやドキュメント、ファイルには順序付けられていません)に書き込み側でつながります。異なる状況(特にMongoDb)で提供できる問題。たとえば、おそらくそのようなデザインはSQLデータベースではOKですが、MongoDbでは問題ありません。 – Mohsen