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?.
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)
UnitOfWorknow includesProcessingLifecycleInterceptor(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)
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)
QueryBusandQueryUpdateEmitterhave and-countemit,complete, andcompleteExceptionallyoperations (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
StateManagerandSnapshotStoreDescribableComponents(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)
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
MessageStreamcallbacks outside the stream lock (PR #4863,@CodeDrivenMitchby @CodeDrivenMitch) - Ensure
Message#payloadAs(TypeReference)honors parameterized type contained inTypeReference(#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
GeneralConverterto resolve@ReplayContextannotated 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
QueryUpdateEmitterandQueryBus(#4884, PR #4894,@smcvbby @smcvb)
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)
Contributors
A heartfelt thank you to all contributors who worked on this section:
- @abuijze
- @CodeDrivenMitch
- @Develop-KIM
- @hatzlj
- @hjohn
- @Ishaan453
- @laura-devriendt-lemon
- @MateuszNaKodach
- @schananas
- @smcvb
- @wadhwaroh-lang
- @theoema
Axoniq Framework
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
typeandtype_versionand maintaining an internal type tag__Tin 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)
Enhancements
- Split off big parts from
PostgresqlEventStorageEngineto 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)
DistributedQueryBusinclude and-countemit,complete, andcompleteExceptionallyoperations (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
SnapshotStoreimplementationsDescribableComponents(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)
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)
HandlerExecutionExceptiondetails 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)
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)
Contributors
A heartfelt thank you to all contributors who worked on this section: