Axon Framework 5 Roadmap

Greetings from the Axon Framework team!

To set expectations for Axon Framework 5, we have drafted a rough list of all the adjustments and additions we are making. We have broken it down into three milestones, including the final major release.

Note that the list below does NOT contain any concrete dates! This is a deliberate choice made by the team. What we can share is that we intend to release it this year.

Furthermore, the list of features and enhancements drafted below might change slightly over the course of our development cycles. We will reflect those changes here and on the GitHub milestone pages.

Milestone 1

Milestone 1 arguably includes the roughest shift for the Axon Framework team: the renewed Unit of Work. You will notice the use of a so-called ProcessingContext throughout Axon Framework’s infrastructure components. This processing context class (as well as more internals) replaces the old UnitOfWork, giving us a way to eliminate the Thread Local usage. This shift, combined with the new MessageStream result object, makes Axon Framework (as we call it) async native.

However, we did more than “just” change Axon Framework’s core:

  • Updated to JDK21
  • New Unit of Work
  • Async-Native Messaging API
  • (Event Sourcing) Repository aligned with async-native API
  • Command Bus aligned with async-native API
  • Event Store aligned with async-native API
  • Integrated DCB support for the Event Store API
  • Renewed Configuration API
  • Stateful Command Handling support
  • Renewed Test Fixture API

For a complete list of all work done for this milestone, please check the following page.

Milestone 2

Milestone 2 will expand the messaging support to align with the new async-native approach. As such, the internals for Event Processing will change. Furthermore, we will reintroduce Aggregate modeling, both annotated and ‘unannotated’ (new!), back into Axon Framework 5.

Besides this, there are a couple more features that we are planning to include:

  • Event Processing aligned with async-native API
  • Reintroducing (Annotated) Aggregate modeling support
  • Message Handler Interceptor support
  • Message Dispatch Interceptor support
  • Spring integration
  • Stateful Event Handling support

For a complete list of all work done for this milestone, please check the following page.

Milestone 3

We intend milestone 3 to be the final milestone release before we release 5.0.0 entirely. As such, it does not contain many new major features or enhancements. Thus, it’s intended as a final clean-up exercise. If time allows, we will include features and improvements currently staged for the 5.0.0 release into this milestone.

Regardless, there are a couple of things worth mentioning at this point:

  • Snapshotting
  • Query Bus aligned with async-native API
  • Stateful Query Handling support
  • Query Bus API improvements
  • Distributed Query Bus
  • More to be announced

For a complete list of all work done for this milestone, please check the following page.

Axon Framework 5.0.0

Then, we hit the major release of Axon Framework 5! The list below contains several arguably important features currently in Axon Framework 4. As the milestone 3 section states, we might pull some of these into that release. Hence, the list below is the “remainder” we have in mind.

  • Overall package and module restructuring
  • Exception Handler aligned with new interceptor approach
  • Revisited Saga integration
  • Event Scheduling aligned with async-native API
  • Deadline Manager API adjustment (includes async-native integration)
  • DLQ aligned with async-native API
  • (Aggregate) Stream refactoring support

For a complete list of all the changes made in Axon Framework 5.0.0, please check all preceding milestone releases and the following page.

Ending note

To be very clear to all readers of this post, we might make changes to these lists! As we all know, we might encounter unforeseen circumstances that require us to adjust our planning. Thanks for your understanding!

4 Likes