如何设计MongoDB数据模型来存储Event Sourcing事件

时间:2016-08-22 06:02:35

标签: mongodb database-design cqrs event-sourcing

如果我每table创建一个document(或document databases aggregate type},我可以合并数据库或在我重构write时对它们进行分片side microservices,结果应用程序变得更具可伸缩性,并且还提高了加载events的速度。

在我设计event store时,我应该注意哪些副作用?

修改

我目前正在使用MongoDb

如果我按collection创建aggregate id怎么办? 或databaseaggregate type collectionaggregate id ...?

这在性能,数据管理的易用性,可维护性或进一步的可扩展性方面是否有问题?

1 个答案:

答案 0 :(得分:2)

  

如果我创建一个单独的表(或文档数据库中的文档),我可以在重构写微服务时合并数据库或对它们进行分片,结果应用程序变得更具可伸缩性。

     

在设计事件存储时,我应该注意哪些副作用?

我没有看到任何关于该设计的权威讨论。

在事件采购社区中讨论过为每个类型聚合提供单独的表格。你可以找到讨论here。执行摘要:似乎有更多有经验的从业者开始,任何人都会故意这样做。

您应该记住的一件事是,虽然事件是真实的(它们描述了企业感兴趣的东西),但聚合是人为的。如果重新设计聚合边界要求您将事件移动到整个地方,您可能会感到不快。

以下内容可能会有所帮助

相关问题