Explore AxonIQ products
Axon Framework Tutorials:
GDPR Module for data erasure in event-driven systems:
AxonIQ Event Store Explained:
- See how Axon Framework is used by companies such as Barclaycard, Société Générale Investment Banking, Promontech, Onegini and many others. Presented on AxonIQ Conference 2017:
Axon Framework Releases
Axon 3.1 Released
Axon Framework 3.1 has several exciting new features that will work greatly in microservices architectures.
3.1. release highlights:
Meet the new member in the Axon family: the Query Bus. We’ve had many questions about why this component wasn’t available. Until recently, we believed queries to be just-like-usual. However, we’ve noticed that queries have interesting patterns. The QueryBus makes these easy to use and, more importantly, completely location transparent. Give it a spin and let us know what you think.
Another addition that we had coming for a while is parallel processing on the TrackingProcessor. While it was limited to a single thread (and this a single active node) in 3.0, this release adds the possibility to define any number of segments that can be processed concurrently. It doesn’t matter whether these segments are processed by threads on the same machine, or on different machines. Check out the Configuration API to find out how you can activate parallel processing on your processor.
It is now possible to selectively route events through the entities in an Aggregate. Especially when an entity would refer to a list of Entities, it could feel awkward that each of those entities receives each event, even if only a single (specified) entity should receive it. The @AggregateMember annotation allows you to specify whether you want to publish to all child entities, or selectively.
The SagaConfiguration has been improved to allow more customizations without having to resort to building entire Processor configurations. This is also true for Spring Boot based configuration, where it is now easier to customize configuration for an @Saga annotated bean.
Another new feature is the ability to configure a separate event serializer in the Configuration API (or Spring Boot Autoconfiguration). This serializer would only be used to serialize events, while other components that are serialized (such as snapshots, Sagas, cache entries) use the generic serializer. This allows you to use a serializer that imposes less design restrictions on the classes to serialize, such as XStream, while also keeping control over how events are serialized and stored for the long term.
For more details on all the changes in this release, check out the resolved issues in this release.
Axon 3.0.5 Released
One of the improvements is for users that have migrated from Axon 2.4, allowing data stored in that version to still be used (as-is) in 3.0. Support for this is available in the ‘axon-legacy’ module.
The Event Store was unable to cope with timestamps that were stored in another timezone than UTC. The parser has been changed, so that times with explicit timezones are properly converted to an Instant.
The GenericJpaRepository was unable to work with aggregate identifiers other than String. In this release, a converter can be specified that converts the String value used in the Repository API to the value to use in the EntityManager API.
The GenericJpaRepository now loads entities using a write lock from the database. This ensures that an aggregate is only active on a single node at a time and prevents deadlocks when multiple threads attempts to upgrade the read lock to a write lock.
For a detailed overview of changes, check the release notes.
Axon 3.0.4 Released
Axon 3.0.4 has been released. It is a quick follow up on the 3.0.3 release and fixes some issues related to the distributed command bus in combination with Spring.
Due a timing issue in the configuration of several components, it was possible that certain Command Handlers were registered with the wrong Command Bus instance (the local segment instead of the distributed command bus). 3.0.4 addresses those issues.
Furthermore, 3.0.4 provides methods on the Configuration interface that provide access to the different submodules and Event Processors.
For full details of this release, check the release notes.