Axon框架与Eventuate比较

25
我们目前正在研究CQRS和事件溯源,并发现两个主要的框架用于处理这两个问题:Axon FrameworkEventuate。两者都在持续开发中,不过Eventuate现在更活跃地在RBMH repository中开发。
我正在为两者克隆一些示例项目,得出结论是Eventuate看起来更加轻量级,但我认为这是由于与Axon相比缺乏某些功能造成的。
我努力寻找这两个框架之间的比较,但在Stackoverflow上也没有找到任何信息。有人能提供一些意见吗?
1个回答

21
作为Axon Framework的原始作者,本回答可能有些偏见。虽然我熟悉Eventuate的概念,但并不是专家。
Axon已经存在约7年,并且自那时以来许多系统都在生产中使用它。似乎Eventuate被设计为一种SaaS解决方案(具有开源的本地安装替代方案),目前处于Alpha阶段。
两个框架似乎是以不同的目标为设计出来的。Eventuate侧重于事件溯源和事件发布,而Axon则更加关注消息的抽象,其中消息既可以是命令、事件,也可以是查询(稍后也可以)。它提供注释来标记事件和命令处理程序。它还允许您以一种使其与框架内部分离的方式设计实体。
这种抽象使您能够“插入”任何想要使用作为事件存储的数据库。Axon直接支持JPA、JDBC和MongoDB。据我所知,Eventuate提供了自己的事件存储实现。

3
大家好,@Allard,非常感谢您的回复。没想到Axon框架的创始人也会成为我的帖子的收件人;-) 您是否同意说,与Eventuate一样,Axon框架不支持OOTB因果一致性方法?换句话说,使用Eventuate实现写扩展性更加困难,而聚合缓存在这方面增加了复杂性。我们如何使用Axon实现命令复制?这似乎是Eventuate的关键优势,也是与Akka Persistence的主要区别。 - Stefano L
6
Axon通过允许多个节点处理命令并使用一致性哈希路由它们来支持命令的可扩展性。DistributedCommandBus(使用JGroups和基于Spring Cloud的实现)负责处理此过程。 - Allard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接