I would like to announce that Axon Framework release 4.5. has been released on the 31th of March 2021. This release has seen numerous addition towards Axon Framework. The most interesting adjustments can be seen down below.
For an exhaustive list of all adjustments made for release 4.5 you can check out this page.
Without further ado, let me give you the most interesting additions to framework:
A new type of
EventProcessorhas been introduced in pull request #1712, called the
EventProcessorallows the same set of operations as the
TrackingEventProcessor, but uses a different threading approach for handling events and processing operations. In all, this solution provides a more straightforward processor implementation and configuration, allowing for enhanced event processing in general. For specifics on how to configure it, check out this section.
Sagas support the use of Deadline Handlers, but an
@DeadlineHandlerannotated method couldn’t automatically close a Saga with the
@EndSagaannotation. This enhancement has been described in #1469 and resolved in pull request #1656. As such, as of Axon 4.5, an
@DeadlineHandlerannotated can also be annotated with
@EndSaga, to automatically close the Saga whenever the given deadline is handled.
Whenever an application uses snapshots, the point arises that old snapshot versions need to be invalidated when loading an Aggregate. To that end the
SnapshotFiltercan be configured. As a simplified solution, the
@Revisionannotation can now be placed on the Aggregate class to automatically configure a revision based
SnapshotFilter. Due to this, old snapshots will be filtered out automatically when an Aggregate is reconstructed from the
EventStore. For those interested, the implementation of this feature can be found here.
At the basis of Axon’s message handling functionality, is the
MessageHandlingMember. For the time being, the sole implementation of this is the
AnnotatedMessageHandlingMember, which expect the use of annotations like the
@EventHandler, for example. As a step towards constructing an annotation-less approach, #1621 was introduced into the framework. The first steps taken in this pull request are the deprecation of annotation-specific methods from the
MessageHandlingMemberinterface. Added to this is a new approach towards defining attributes of a message handling member through