Axon 框架 - 为每个聚合根使用单独的 Mongo 域事件集合

Axon framework - using separate Mongo collection of domain events for each aggregate root

我们担心为域事件使用单个 Mongo 集合 (domainevents) 的性能。

将 domainevents 集合拆分为每个聚合根的独立集合是个好主意吗?

我们有查询模型,它是根据来自多个聚合根的事件生成的。如果我们将域事件拆分为多个集合,Axon 是否仍会保留聚合根中的事件顺序?

这样做通常是个好主意吗?

这里有几个问题,需要不同的知识来回答。我不是 MongoDB 专家,但作为创始人,我了解 Axon。

Axon 中的 MongoEventStore 本身不支持域事件的多个集合。所以你的订单保存查询的答案是:它不会工作,除非你自己建立支持。然后根据您的构建方式保证顺序。

您还可以考虑对 Mongo 集合进行分片。使用聚合标识符作为分片键将允许您保证对聚合流的查询命中单个分片。根据文档,建议避免不包含此分片键的查询。

处理此性能问题的最佳方法是进行性能测试。查看延迟和吞吐量如何随着集合大小的增长而受到影响。添加正确的索引可能会有所帮助。