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 introduce Axon Server as a Dynamic Consistency Boundary supporting Event Store. :tada:
Furthermore, we expand on Entity (previously Aggregate) modelling support, by aligning it with the new (configuration API), adding both annotated and ‘unannotated’ (new!) configuration solutions. Lastly, we add Spring integration and the new Update Checker (please read here for more on the Update Checker).

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

  • Axon Server DCB-based Event Store integration
  • Reintroducing (Annotated) Aggregate / Entity modeling support
  • Spring integration
  • Update Checker

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

Milestone 3

Milestone 3 will expand the messaging support to align with the new async-native approach. As such, the internals for Event Processing will change. Furthermore, the interceptor API will follow, as well as the Serializer-to-Converter switch:

  • Event Processing aligned with async-native API
  • Message Handler Interceptor support
  • Message Dispatch Interceptor support
  • Stateful Event Handling support
  • Reintroducing Converter (previously Serializers)
  • Axon Server Command Bus integration

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

Milestone 4 / Preview

We intend milestone 4 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:

  • Event Handler-specific Sequencing Policy support
  • Query Bus aligned with async-native API
  • Stateful Query Handling support
  • Query Bus API improvements
  • Correlation Data Provider support
  • PostgreSQL Storage Engine (extension)
  • Finalized Spring Boot integration
  • Overall package and module restructuring
  • Project clean-up

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! We expect this release to follow up the preview release very shortly. Given the short window, there are only a couple of leftovers that will make it into this release, being:

  • Subscribing Event Processor support
  • Message Monitor support
  • Interceptor support for the Query Bus
  • Distributed Query Bus (Axon Server)

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.

Axon Framework 5+

Then, let us look into the future! The list below contains several features that are arguably important and currently available in Axon Framework 4. Due to our intent to make things futureproof, we wait with all of these until the core of Axon Framework 5 has settled and is being used.

With that said, here’s an unordered list of the upcoming major features that we will (re)introduce in the upcoming minor release of Axon Framework 5:

  • Event Scheduling aligned with async-native API
  • Event Processor replay support
  • Revisted Snapshotting support
  • Persistent Streams aligned with async-native API
  • Aggregate AF4-AF5 Migration module
  • Projection Testing
  • Spring Cloud - Command and Query support
  • Revised Distributed Tracing
  • Deadline Manager API adjustment (includes async-native integration)
  • DLQ aligned with async-native API
  • Annotated and declarative Message Handling Component Interceptor support
  • Saga AF4-AF5 Migration module
  • Revisited Kafka support
  • Revisisted AMQP support
  • Revisited Saga integration

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

Minor fix suggestion.

You previously had 3 milestones planned, and now that you split M2 into M2 and M3, the description of M4 in your post is off. It is still referring to itself as M3

Milestone 4

We intend milestone 3 ← this

Thanks for the nudge here, @waltm. I had some clean-up work to do here for sure! I have just updated it accordingly.