我们担心使用单个 Mongo 集合 (domainevents) 处理域事件的性能。
将 domainevents 集合拆分为每个聚合根的单独集合是个好主意吗?
我们有查询模型,它是基于来自多个聚合根的事件生成的。如果我们将域事件拆分为多个集合,Axon 是否仍会在聚合根中保留事件的顺序?
这样做通常是个好主意吗?
我们担心使用单个 Mongo 集合 (domainevents) 处理域事件的性能。
将 domainevents 集合拆分为每个聚合根的单独集合是个好主意吗?
我们有查询模型,它是基于来自多个聚合根的事件生成的。如果我们将域事件拆分为多个集合,Axon 是否仍会在聚合根中保留事件的顺序?
这样做通常是个好主意吗?
这里有几个问题,需要不同的知识来回答。我不是 MongoDB 专家,但作为创始人,我知道我在 Axon 周围的方式。
MongoEventStore
in Axon 本身并不支持域事件的多个集合。因此,您的订单保留查询的答案是:它不会起作用,除非您自己建立支持。然后根据您构建它的方式来保证订单。
您还可以考虑对 Mongo Collection 进行分片。使用聚合标识符作为分片键将允许您保证对聚合流的查询命中单个分片。根据文档,建议避免不包含此分片键的查询。
处理此性能问题的最佳方法是进行性能测试。了解随着集合大小的增长,延迟和吞吐量如何受到影响。添加正确的索引可能会有所帮助。