Axon Framework vs Eventuate comparison
Asked Answered
A

1

25

We are currently doing some research about CQRS and Event Sourcing and found two major frameworks taking care of these two concerns: Axon Framework and Eventuate. Both are continuesly developed, while Eventuate is now more actively developed in the RBMH repository.

I was GIT cloning some sample projects for both and came to the conlusion that Eventuate looks a little bit more lightweight, however I assume this is due to lack of features compared to Axon.

I tried in vain to find a comparison between those 2 frameworks, also here in Stackoverflow I couldn't find any. Does someone have some input?

Assyria answered 31/3, 2017 at 8:44 Comment(0)
S
21

Being the original author of Axon Framework, this answer may be a bit biased. I am also not an expert in Eventuate, although I am familiar with its concepts.

Axon has been around for about 7 years and is being used by many systems in production since then. It appears that Eventuate has been designed as a SaaS solution (with open source local-install alternative), which is currently in Alpha.

Both frameworks seem to have been designed with different goals in mind. Where Eventuate focuses on Event Sourcing and event publication, Axon's focus is much more on the abstraction of messaging, where messaging is both Commands, Events and (in a later stage also) Queries. It provides annotations to demarcate Event and Command handlers. It also allows you to design your entities in a way that keeps it decoupled from the framework's internals.

This abstraction allows you to "plug in" any database you would like to use as Event Store. Axon provides support for JPA, JDBC and MongoDB out of the box. As far as I can tell, Eventuate provides its own event store implementation.

Soho answered 4/4, 2017 at 8:0 Comment(2)
Hi @Allard, thanks a lot for your reply. I didnt expect to find the founder of the Axon framework as a recipient to my post ;-) Do you agree saying that Axon doesn't support a Causal Consistency approach OOTB, as Eventuate does? I. e. Write scalability is a bit more difficult to achieve with Eventuate, and Aggregate Caching increases complexity in that matter even more. How can we achieve Command Replication with Axon? This seems to be the key benefit of Eventuate, which is also the main difference to Akka PersistenceAssyria
Axon supports Command scalability by allowing multiple nodes to process commands, using Consistent Hashing to route them. The DistributedCommandBus (with JGroups and Spring Cloud based implementations) takes care of this.Soho

© 2022 - 2024 — McMap. All rights reserved.