Over a million developers have joined DZone.

Axon CQRS Framework Releases 0.6

DZone's Guide to

Axon CQRS Framework Releases 0.6

· Java Zone
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

Allard Buijze of JTeam released version 0.6 of the Axon Framework (for Java) today.  He says that this version has taken another major step towards full production readiness.  Axon 0.6 has a new mechanism to trigger snapshots and supports testing applications with 'given-when-test' fixtures.  

The Google Code page introduces this framework for those who have never heard of it:

Axon Framework helps build scalable, extensible and maintainable applications by supporting developers apply the Command Query Responsibility Segregation ( CQRS) architectural pattern. It does so by providing implementations, sometimes complete, sometimes abstract, of the most important building blocks, such as aggregates, repositories and event busses (the dispatching mechanism for events). Furthermore, Axon provides annotation support, which allows you to build aggregates and event listeners without tying your code to Axon specific logic. This allows you to focus on your business logic, instead of the plumbing, and helps you makes your code easier to test in isolation.

CQRS Architecture

Brand New in 0.6

Test Fixtures - Thes allow you to test command handling logic based on events and commands.  In 0.6 they are now part of the axon-test module.  You can define them in a given-when-then style.  

CommandBus - This interface now allows asynchronous command dispatching.  A callback can now be used to be notified of a command execution's result instead of using a return value.

- A new mechanism triggers snapshots based on the number of events that must load in order to reconstitute an aggregate.  When the events exceed a certain threshold, a snapshot is taken.

Repositories - They can now detect incompatible modifications.  Event sourcing repositories can provide a more advanced method for detecting conflicts.  The ConflictResolver can detect many of the conflicts in concurrent modifications.

UnitOfWork - The repositories now make use of the UnitOfWork instance to keep track of changed aggregates and generated events.  UnitOfWork can store changed aggregates and dispatch events when it is committed.  It does not have to save each aggregate separately.  

Finally, SimpleCommandBus and SimpleEventBus expose statistics over JMX.

Download the Axon Framework here.

Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}