Axon and Axoniq Framework - Release 5.4.1

We are glad to announce that we’ve released Axon and Axoniq Framework version 5.4.1 on October 22th, 2026. This release contains:

Axon Framework

:chart_with_upwards_trend: Enhancements

  • [Port] Migration Path enhancements, OpenRewrite Script expansion, and default PSEP-wide SequencingPolicy #5194
  • Name migrated aggregate deadline handlers after aggregate type and deadline #5190

:beetle: Bug fixes

  • Fix window of opportunity for “Duplicate key for ConfigurationEnhancer” #5195
  • [#5169] Ensure consistent interceptor behavior for Polymorphic Entities #5189
  • Make OrEventCriteria#or idempotent #5183
  • Keep ReplayToken on both halves when splitting during a replay #5173
  • OpenRewrite: close 4 legacy saga and deadline migration gaps #5166
  • [#5133] Resolve bean types from merged definitions in SpringComponentRegistry #5165
  • Fail ambiguous component lookups instead of silently using the default #5163
  • Resolve components registered under a subtype before using the default #5162
  • [#5155] Keep emitting subscription query updates under bounded demand #5158

:heart: Contributors

Thank you to all the contributors who worked on this

@CodeDrivenMitch, @smcvb, @hatzlj, and @schananas

Axoniq Framework

:star: Features

  • Expand replay support for DeadLetteringEventHandlingComponent (#515, @smcvbR #649, by @smcvb)
  • Allow customizing persistent stream ids per tenant (@hatzljR #694, by @hatzlj)

:chart_increasing: Enhancements

  • Name aggregate deadline commands after the aggregate type and deadline name (#657, @hatzljR #659, by @hatzlj)
  • Deadline review follow-ups: delivery tests, Quartz job failures and small fixes (@hatzljR #645, by @hatzlj)
  • Legacy deadline follow-ups and cleanup (@hatzljR #679, by @hatzlj)
  • Clean-up copyright header (@smcvbR #681, by @smcvb)
  • Allow to use an axoniq-license provided via the AXONIQ_LICENSE env for the shared Axon Server testcontainer (@hatzljR #654, by @hatzlj)
  • Rename secret from AXON_SERVER_LICENSE to AXONIQ_LICENSE (@smcvbR #647, by @smcvb)
  • Start the persistent stream IT’s streams at the tail (@hatzljR #696, by @hatzlj)

:beetle: Bug Fixes

  • Read Void-typed empty command results from Axon Server as null (PR #637, @MateuszNaKodachR #641, by @MateuszNaKodach)
  • Read empty query results from Axon Server as null (@hatzljR #648, by @hatzlj)
  • Disable the single-round-trip snapshotted-source RPC by default (@hjohnR #678, by @hjohn)
  • Ensure FlowControlledResponseSender invokes hasNextAvailable once, preventing a lost query response when the handler result arrives mid-check (#666, @smcvbR #685, by @smcvb)
  • Fix lost responses and double completion in the Spring Cloud query drains (@MateuszNaKodachR #686, by @MateuszNaKodach)
  • Tracing Micrometer: preserve spans across WebFlux context switches (@MateuszNaKodachR #688, by @MateuszNaKodach)

:open_book: Documentation

  • Replace page aliases for the deadlines guide with a redirect in the library-site (@hatzljR #684, by @hatzlj)

:hammer_and_wrench: Dependency Upgrades

  • Upgrade Axon Server Connector for Java to 2026.1.1 (@smcvbR #690, by @smcvb)
  • Upgrade Axon Framework to 5.4.1 (@smcvbR #692, by @smcvb)

:heart: Contributors

A heartfelt thank you to all contributors who worked on this section: