jdon or Axion?

Hi there!

I would like to use CQRS for a project I'm doing but can't really
decide what framework to use.
In the Java domain I see JDON and Axion but what to choose?

I think that JDON (https://jdon.dev.java.net/) is the implementation
of the DDD Paradigm and Axion is the implementation of the CQRS
architecture principle (and CQRS/CQS is part of DDD thus you have a
little bit of DDD too) but is this correct?

Is it possible to compare these frameworks or are their purposes that
different that you can't really compare them? Any thoughts would
really help!

regards,
Freek

Hi Freek,

my view is that JDON solves a rather different problem than Axon (without the i :slight_smile: ) does. JDON put the model in the middle of your application. I believe there are mechanisms to trigger and handle events in these domain.

Axon has a different point of view. It supports developers in designing an application using the CQRS approach, using an event driven architecture (although that is not even required). Axon helps you make a distinction between two parts of your application, the command handling part © and the Query Handling part (Q). These parts will also have different models altogether.

I believe you are right when you say that JDON supports DDD and Axon support CQRS. The real point, though, is that DDD is more than a programming model. It is an approach on how to do projects. Using a framework to support you is only part of it. Axon supports an architectural model that helps building scalable solutions (if needed) and keep complexity at bay.

You could see CQRS as a specific view on the implementation part of DDD. Instead of modeling everything as a single model, CQRS acknowledges that there is in fact a different model for executing commands and for doing queries. As an example, the concept of Order must be modeled differently depending on your target audience. For an order picker, an order is a list of items to fetch from the warehouse. For finance, only the amounts of an order are relevant. For validating an incoming order, even other data is relevant. Etc. Etc.

So I guess that the problems Axon and JDON are trying to solve are very different. In the end, it’s probably a question of what you’re really trying to achieve. And I just hope the answer is Axon :wink:

Hope this helps.

Cheers,

Allard

Merci Beaucoup (fish) :slight_smile:

All things were pointing to Axon and are still pointing to axon :slight_smile:

regards,
Freek