All the enhancements and features which have been introduced to our major and minor release are documented here. This covers improvements to Axon Framework, Axon Server and the Axon Framework Extensions, since all three follow the same release cadence. For bug fixes per project, we refer to this page.
Axon Framework applications can now use tags to support a level of 'location awareness' between Axon clients and Axon Server instances.
This feature is further described here.
Axon Server already supported several contexts, but Axon Framework application could no specify to which context message should be dispatched.
The Axon Server Connector has been expanded with a
TargetContextResolver to allow just this.
A new implementation of the
StreamablbeMessageSource has been implemented: the
This implementation allow pairing several "streamable" message sources into a single source.
This can in turn be used to for example read events from several distinct contexts for a single Tracking Event Processor.
Handler Execution Exception now allow application specific information to be sent back over the wire in case of a distributed set up.
TrackingToken interface now provides an estimate of it's relative position in the event stream through the
Optional return types can now be used for Query Handling methods.
For a full list of all features, enhancements and bugs, check out the issue tracker.
TrackingEventProcessor now has an API to split and merge
TrackingTokens during runtime of an application.
Axon Server has additions to the UI to split and merge a given Tracking Event Processor's tokens.
Primitive types are now supported as
@QueryHandler return types.
In a similar fashion as the
QueryGateway we have introduced the
As with the command and query version, the
EventGateway provides a simpler API when it comes to dispatching Events on the
We refer to this page for a full list of all the changes.
The package structure of Axon Framework has changed drastically with the aim to provide users the option to pick and choose.
For example, if only the messaging components of framework are required, one can directly depend on the
In part with the package restructure, all components which leverage another framework to provide something extra have been given their own repository.
These repositories are called the Axon Framework Extensions.
The configuration of Event Processor has been replaced and greatly fine tuned with the addition of the
Some new defaults have been introduced in release 4.0, like a bias towards expecting a connection with Axon Server.
Another important chance is the switch from defaulting to Tracking Processors instead of Subscribing Processors.
The notion of a
CommandResultMessage has been introduced as a dedicated message towards the result of command handling.
To simplify configuration and more easily overcome deprecation,
the Builder pattern has been implemented for all infrastructure components.
For more details, check the list of issues here.