Axon and Axoniq Framework - Release 5.3.0

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

Axon Framework

This release of Axon Framework introduced a minor breaking changes as per #4609.
For those using the @InjectEntity annotation parameter, expect the EntityNotFoundException to be thrown for creational command handlers.
To resolve this, mark the @InjectEntity as nullable, either through an annotation, by making the type Optional, or when using Kotlin through State?.

:star: Features

  • Introduce Segment Progress seam into Streaming Event Processors (PR #4636,@abuijzeby @abuijze)
  • demo + doc for axoniq split event transformation (PR #4711,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • add multi-tenancy documentation to the reference guide (PR #4712,@hatzljby @hatzlj)
  • feat: AF5 tracing integration (PR #4713,@MateuszNaKodachby @MateuszNaKodach)
  • Add broadcast sequence identifier for segment-spanning event delivery (PR #4742,@schananasby @schananas)
  • Initial setup multi tenancy demo (PR #4743,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • UnitOfWork now includes ProcessingLifecycleInterceptor (PR #4748,@MateuszNaKodachby @MateuszNaKodach)
  • initial demo setup with declarative approach and springboot approach + command dispatching/handling (PR #4755,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Reintroduce Map-support for entity members (#4757, PR #4759,@smcvbby @smcvb)
  • Resolve Multi-Tenancy demo comments post-merge (PR #4774,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Add per-tenant event storage to the multi-tenancy demo (PR #4775,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Add per-tenant snapshotting to the multi-tenancy demo (PR #4794,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Add tenant-aware event processing to the multi-tenancy demo (PR #4795,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Add backport workflow (PR #4842,@hjohnby @hjohn)
  • Add backport workflow - Phase 2 (PR #4843,@hjohnby @hjohn)
  • Add backport workflow - Phase 3 (PR #4844,@hjohnby @hjohn)
  • Feature/backport action - Phase 5 (PR #4847,@hjohnby @hjohn)
  • Add project linking to backport workflow - Phase 6 (PR #4849,@hjohnby @hjohn)
  • Add tenant-aware query handling to the multi-tenancy demo (PR #4852,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Support Kotlin nullability @InjectEntityor @InjectEntity annotated parameters (#4856, PR #4861,@MateuszNaKodachby @MateuszNaKodach)
  • Add a persistent-streams option to the multi-tenancy demo (PR #4876,@hatzljby @hatzlj)

:chart_increasing: Enhancements

  • Consolidate Entity discovery for Entity-centric and Stateful-Handler-centric (PR #4609,@smcvbby @smcvb)
  • EventStorageEngine#source and SnapshotStore methods - add ProcessingContext parameter (PR #4723,@MateuszNaKodachby @MateuszNaKodach)
  • replace joinAndUnwrap in subscribing processor (#4618, PR #4730,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Add convenience overloads for declarative entity builders (#4171, PR #4739,@wadhwaroh-langby @wadhwaroh-lang)
  • Enforce correct qualified name and version use (PR #4751,@hjohnby @hjohn)
  • Add duplicate tag and type filtering tests (PR #4753,@hjohnby @hjohn)
  • Make pooled processor source and token-store optional when unset (#4727, PR #4763,@wadhwaroh-langby @wadhwaroh-lang)
  • QueryBus and QueryUpdateEmitter have and-count emit, complete, and completeExceptionally operations (PR #4764,@smcvbby @smcvb)
  • Consolidate test log4j2 config into a single shared module (PR #4768,@hjohnby @hjohn)
  • Allow EntityMetamodel to be decorated without breaking ID resolution (PR #4772,@hjohnby @hjohn)
  • Enable direct metadata on Command- and QueryGateway dispatch (PR #4776,@hatzljby @hatzlj)
  • Extract snapshot sourcing composition into its own enhancer (#4791, PR #4792,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Add FutureUtils#allOrEmpty (PR #4816,@hatzljby @hatzlj)
  • Adapt the multi-tenancy examples to multi-tenancy being enabled by default (PR #4837,@hatzljby @hatzlj)
  • Make StateManager and SnapshotStore DescribableComponents (PR #4860,@smcvbby @smcvb)
  • Make SpanFactory and SpanAttributesProviderRegistry DescribableComponents (PR #4862,@MateuszNaKodachby @MateuszNaKodach)
  • Support detail conversion for HandlerExecutionException (PR #4867,@smcvbby @smcvb)
  • Add auto-assign, label copy and project linking to backport workflow (PR #4869,@hjohnby @hjohn)

:beetle: Bug Fixes

  • Issue 4702 get component and get optional component consistency when working with lazy beans (#4702, PR #4732,@Ishaan453by @Ishaan453)
  • Invoke the subtype handler over a shadowed supertype handler (#4579, PR #4733,@Develop-KIMby @Develop-KIM)
  • Fix navigation item for the dataprotection-extension migration path (PR #4740,@hatzljby @hatzlj)
  • fix(messaging): EventAppender/CommandDispatcher#forContext must not cache a context-bound wrapper (PR #4746,@MateuszNaKodachby @MateuszNaKodach)
  • Potential fix for flakey log message verifications (PR #4747,@hjohnby @hjohn)
  • Do not report rolled-back events in AxonTestFixture (PR #4752,@smcvbby @smcvb)
  • Only resolve replay context during an active replay (PR #4758,@smcvbby @smcvb)
  • Resolve incorrect event routing in heterogeneous Sequencing Policy setup among Event Handling Components (PR #4769,@MateuszNaKodachby @MateuszNaKodach)
  • fix(eventsourcing): Active entities should only receive tag-matching events during command handling phase (#4766, PR #4770,@MateuszNaKodachby @MateuszNaKodach)
  • Only deduplicate fluent accessors for records (PR #4777,@smcvbby @smcvb)
  • Validate return- and parameter-type in FieldChildEntityFieldDefinition (PR #4778,@smcvbby @smcvb)
  • Reopen the event stream when its source completed it (PR #4787,@smcvbby @smcvb)
  • Fix bug where publish future could complete before events are visible (PR #4838,@hjohnby @hjohn)
  • Back off before reopening a stream whose source failed (#4839, PR #4841,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Fix backport workflow missing checkout step - Phase 4 (PR #4845,@hjohnby @hjohn)
  • Invoke MessageStream callbacks outside the stream lock (PR #4863,@CodeDrivenMitchby @CodeDrivenMitch)
  • Ensure Message#payloadAs(TypeReference) honors parameterized type contained in TypeReference (#4874, PR #4878,@smcvbby @smcvb)
  • Create intercepting event store transaction per context (#4879, PR #4887,@schananasby @schananas)
  • Pace stream reopens after empty clean completions (#4882, PR #4888,@schananasby @schananas)
  • Use GeneralConverter to resolve @ReplayContext annotated parameter (PR #4889,@smcvbby @smcvb)
  • Turn synchronous subscriber failures into failed publication results (#4883, PR #4890,@schananasby @schananas)
  • Branch StubProcessingContext resources instead of mutating the shared context (#4880, PR #4891,@schananasby @schananas)
  • Let loadOrCreate create through a cached not-found entry (#4886, PR #4892,@schananasby @schananas)
  • Judge stored progress on both bounds of a range token (#4881, PR #4893,@schananasby @schananas)
  • Fine tune emit-and-count flow of QueryUpdateEmitter and QueryBus (#4884, PR #4894,@smcvbby @smcvb)

:open_book: Documentation

  • Externalize reference-guide documentation code samples into compilable files (PR #4709,@abuijzeby @abuijze)
  • Include AF 5.2.0 release notes (PR #4731,@smcvbby @smcvb)
  • Include connection-security documentation on the Spring Boot integration page (PR #4745,@abuijzeby @abuijze)
  • Add 5.2.1 release notes (PR #4784,@smcvbby @smcvb)
  • Add 5.2.2 Release Notes (PR #4793,@smcvbby @smcvb)
  • add navigation for multi tenancy migration path (PR #4866,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Add 5.2.3 release notes (PR #4875,@smcvbby @smcvb)

:heart: Contributors

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

Axoniq Framework

:star: Features

  • Relocate event-handler checkpointing into axoniq-event-streaming (PR #203,@abuijzeby @abuijze)
  • split event transformation (#216, PR #218,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • multitenancy module scaffolding + integration branch (#204, PR #219,@hatzljby @hatzlj)
  • Infrastructure: tenant registration, resolution and wiring skeleton (PR #226,@jangalinskiby @jangalinski)
  • Add tenant aware components (PR #245,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Distributed tracing based on Micrometer Tracing (PR #259,@MateuszNaKodachby @MateuszNaKodach)
  • Migration logic for spliting type into type and type_version and maintaining an internal type tag __T in the tags table (PR #262,@hjohnby @hjohn)
  • Multi-Tenancy event storage (PR #263,@jangalinskiby @jangalinski)
  • spring boot auto config (#211, PR #265,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Multi-Tenancy command handling (#207, PR #266,@hatzljby @hatzlj)
  • Multi-Tenancy query handling (#208, PR #281,@hatzljby @hatzlj)
  • Add multi-tenant pooled streaming read side (PR #283,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Implement type queries and type appends for Postgres ESE (#52, PR #287,@hjohnby @hjohn)
  • Add multi-tenant persistent streams (#210, PR #307,@hatzljby @hatzlj)
  • Attach the tenant to a message dispatched from within a handler (#315, PR #316,@hatzljby @hatzlj)
  • Add entitlement checks for Multi-tenancy (PR #335,@CodeDrivenMitchby @CodeDrivenMitch)
  • Feature/backport action (PR #336,@hjohnby @hjohn)

:chart_increasing: Enhancements

  • Split off big parts from PostgresqlEventStorageEngine to reduce the main engine code size (PR #248,@hjohnby @hjohn)
  • EventStorageEngine#source and SnapshotStore methods - add ProcessingContext parameter (PR #255,@MateuszNaKodachby @MateuszNaKodach)
  • Add mutual TLS configuration properties for Axon Server connections (PR #256,@abuijzeby @abuijze)
  • Disable some tests for coordination with Axon Framework (PR #264,@hjohnby @hjohn)
  • Improve watch.js for local doc rendering / improve docs readme / gitignore localLinks (PR #267,@hatzljby @hatzlj)
  • Switch default test SLF4J binding from Logback to Log4j2 (PR #269,@hjohnby @hjohn)
  • DistributedQueryBus include and-count emit, complete, and completeExceptionally operations (PR #277,@smcvbby @smcvb)
  • Enable multi-tenancy by default when on the classpath a… (#258, PR #303,@hatzljby @hatzlj)
  • Fix connection-pool leak and starved common pool on CI (PR #306,@hjohnby @hjohn)
  • Make all SnapshotStore implementations DescribableComponents (PR #312,@smcvbby @smcvb)
  • Implement describeTo for SpanFactory implementations (PR #314,@MateuszNaKodachby @MateuszNaKodach)
  • Align CLAUDE.md wildcard-import rule with .editorconfig (PR #328,@hatzljby @hatzlj)
  • Add entitlement checks for Micrometer Tracing (PR #334,@MateuszNaKodachby @MateuszNaKodach)

:beetle: Bug Fixes

  • Release notes fix - Move bug fix from 5.1.2 to 5.2.0 (PR #249,@smcvbby @smcvb)
  • Fix incorrect token position assumption in MultiStreamableEventSourceTest (PR #297,@hjohnby @hjohn)
  • Increase AxonServerContainer startup timeout to 2 minutes and log slow starts (PR #301,@hjohnby @hjohn)
  • Fix tracing integration tests failing under default-on multi-tenancy (PR #325,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • HandlerExecutionException details are carried over (#323, PR #326,@smcvbby @smcvb)
  • Fix event metadata dropped on append in AggregateBasedAxonServerEventStorageEngine (#330, PR #332,@hatzljby @hatzlj)
  • Multi-tenant application shutdown blows the lifecycle phase budget and can leak live connectors (#319, PR #333,@jangalinskiby @jangalinski)

:open_book: Documentation

  • Include AAF 5.2.0 release notes (PR #233,@smcvbby @smcvb)
  • Externalize reference-guide code samples into compilable sources (PR #268,@abuijzeby @abuijze)
  • Add 5.2.1 release notes (PR #291,@smcvbby @smcvb)
  • Add 5.2.2 Release Notes (PR #294,@smcvbby @smcvb)
  • Externalize the multi-tenancy code samples + reference demo (#280, PR #313,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Documentation multi tenancy migration path (#212, PR #324,@laura-devriendt-lemonby @laura-devriendt-lemon)
  • Add 5.2.3 release notes (PR #331,@smcvbby @smcvb)

:heart: Contributors

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