我们目前正在对 CQRS 和 Event Sourcing 进行一些研究,发现有两个主要框架可以解决这两个问题:Axon Framework和Eventuate。两者都在继续开发,而 Eventuate 现在在RBMH 存储库中得到更积极的开发。
我在 GIT 中为两者克隆了一些示例项目,并得出结论 Eventuate 看起来更轻量级,但我认为这是由于与 Axon 相比缺乏功能。
我徒劳地试图找到这两个框架之间的比较,在 Stackoverflow 中我也找不到。有人有意见吗?
我们目前正在对 CQRS 和 Event Sourcing 进行一些研究,发现有两个主要框架可以解决这两个问题:Axon Framework和Eventuate。两者都在继续开发,而 Eventuate 现在在RBMH 存储库中得到更积极的开发。
我在 GIT 中为两者克隆了一些示例项目,并得出结论 Eventuate 看起来更轻量级,但我认为这是由于与 Axon 相比缺乏功能。
我徒劳地试图找到这两个框架之间的比较,在 Stackoverflow 中我也找不到。有人有意见吗?
作为 Axon Framework 的原作者,这个答案可能有点偏颇。我也不是 Eventuate 的专家,尽管我熟悉它的概念。
Axon 已经存在了大约 7 年,从那时起,许多系统都在生产中使用它。Eventuate 似乎被设计为 SaaS 解决方案(具有开源本地安装替代方案),目前处于 Alpha 阶段。
这两个框架的设计似乎都考虑了不同的目标。Eventuate 专注于事件溯源和事件发布,而 Axon 的重点更多地放在消息传递的抽象上,其中消息传递既是命令、事件,又是(在稍后阶段)查询。它提供注释来划分事件和命令处理程序。它还允许您以使其与框架内部分离的方式设计实体。
这种抽象允许您“插入”任何您想用作事件存储的数据库。Axon 为 JPA、JDBC 和 MongoDB 提供开箱即用的支持。据我所知,Eventuate 提供了自己的事件存储实现。