We are glad to announce that we’ve released Axon and Axoniq Framework version 5.2.0 on July 9, 2026. This release contains:
Axon Framework
Features
- feat(eventsourcing):
EventStoreTransaction- allow overridingAppendConditioncalculated from sourcing (#4291, PR #4295, by @MateuszNaKodach) - Add annotated and declarative handler interceptor support for events, commands, and queries (#3485, PR #4515, by @abuijze)
- Add exception handler support for command, event, and query handling components (#3062, PR #4520, by @abuijze)
- Configure application wide Clock (#3083, PR #4592, by @jangalinski)
- Message Transformation / Upcasting - Demo (#137, PR #4624, by @laura-devriendt-lemon)
- Add collect, flatMap and mapMulti methods to MessageStream API (#4627, by @hjohn)
- Message Transformation - Sourcing Criteria widening for sourcing (#137, PR #4638, by @laura-devriendt-lemon)
- Message Transformation - Rename support (phase 4) (#137, PR #4642, by @laura-devriendt-lemon)
- Message Transformation - Drop / Filter support (phase 5) (#137, PR #4648, by @laura-devriendt-lemon)
- Decorate
CommandBusinRetryingCommandBuswhen aRetryScheduleris present (#4652, PR #4662, by @smcvb) - Merge Message Transformation support (#137, PR #4689, by @smcvb)
- chore(tracing): remove OpenTelemetry extension (will be moved to Axoniq Framework) (#3594, PR #4720, by @MateuszNaKodach)
Enhancements
- Fix fromFuture to return Empty stream when future completes with null (#4516, by @abuijze)
- Cleanup/remove deprecated modules (#4524, by @abuijze)
- phase 0 Replace thenRun + joinAndUnwrap with thenCompose in Coordinator#abortWorkPackage (#3773, PR #4527, by @laura-devriendt-lemon)
- phase 1 Make ClaimTask, SplitTask and MergeTask fully async (#3773, PR #4530, by @laura-devriendt-lemon)
- phase 2 remove joinAndUnwrap from workPackage and coordinator (#3773, PR #4536, by @laura-devriendt-lemon)
- phase 3 Remove joinAndUnwrap from PooledStreamingEventProcessor (#3773, PR #4540, by @laura-devriendt-lemon)
- Document PooledStreamingEventProcessor lifecycle and start() … (#3773, PR #4541, by @laura-devriendt-lemon)
- Replace
joinunwrapusage fromPooledStreamingEventProcessor(#3773, PR #4552, by @laura-devriendt-lemon) - Return failed futures from InMemoryTokenStore (#4546, PR #4559, by @wadhwaroh-lang)
- Account for async snapshot storage in SnapshottingEntityLifecycleHandlerTestSuite (#4595, by @hatzlj)
- fix(messaging): token store intit loses spring transaction pooled streaming processor (#4632, PR #4645, by @laura-devriendt-lemon)
- Added a DCB skill based on AF API, AS API, and theoretical resources available (#4654, by @m1l4n54v1c)
- Message Transformation - Semantic matching docs + demo (#137, PR #4660, by @laura-devriendt-lemon)
- Disable sonar for builds (#4680, by @hatzlj)
- Surface
ErrorsfromUnitOfWorkactions instead of hanging silently (#4697, by @MateuszNaKodach) - [Port] fix(migration): honor skipTests property (#4700, by @MateuszNaKodach)
- Migrate
routingKeyto@Commandannotations (#4704, by @klauss42) - Adjust generics of registerIfNotPresent to match register (#4717, by @hjohn)
- Allow
EventProcessorDefinitionsto supply an event source for a subscribing processor (#4721, PR #4722, by @hatzlj) - AF4 MultiSourceLegacyToken classname compatibility fix (#4633, PR #4724, by @laura-devriendt-lemon)
Bug Fixes
- Port 5.1.x to main (#4399, by @hatzlj)
- Port post 5.1.0-RC3 release to
main(#4452, by @smcvb) - Port 5.1.x to main (#4472, by @hatzlj)
- Fix documentation build (#4547, by @abuijze)
- Fix duplicate command handler registration when subtype overrides handler (#3934, PR #4550, by @hatzlj)
- revert main to state before 4060 (#4060, PR #4557, by @laura-devriendt-lemon)
- Port: axon 5.1.x → main (#4572, by @hatzlj)
- Merge branch ‘axon-5.1.x’ (#4590, by @hjohn)
- Validate
ProcessingContextis committed inSimpleQueryBusonemitUpdate,completeSubscriptions, andcompleteSubscriptionsExceptionallyinvocations (#4594, PR #4602, by @smcvb) - Port/axon 5.1.x main (#4617, by @hatzlj)
- Avoid costly stack walk on every task start in AxonTimeLimitedTask (#4635, by @hjohn)
- Introduce the
EventTypeResolverforEventStorageEngines| Allows for default versions (#4625, PR #4665, by @smcvb) - Register the micrometer
MetricsConfigurationEnhanceronly once when using Spring Boot (#4634, PR #4666, by @smcvb) - Propagate all entry resources to per-event ProcessingContext (#4647, PR #4669, by @hatzlj)
- [Port] fix(messaging): disposing a Flux does not close the underlying subscription query (#4678, by @smcvb)
AggregateBasedJpaEventStorageEngine#streamloops untilStreamingConditionmatching events are retrieved (#4643, PR #4684, by @smcvb)- [Port] Align
QualifiedName#(Class)outcome with annotated approach for nested classes (#4685, by @smcvb) - Re-Add JdbcTokenstore to the streaming event processors reference (#4692, by @hatzlj)
- Skip interceptor members when applying @SequencingPolicy (#4705, PR #4706, by @abuijze)
- fix(messaging): preserve enhancers in UnitOfWorkConfiguration#forcedSameThreadInvocation (#4714, by @MateuszNaKodach)
- Align snapshotting annotation with documentation (#4715, by @hjohn)
- Wrap ESE when it is not the same instance providing SnapshotStore (#4716, by @hjohn)
- AF5 application cannot start with TokenStore containing AF4 tokens bug (#4633, PR #4718, by @laura-devriendt-lemon)
- SpringComponentRegistry - Handle missing Spring components adhering to the
ComponentRegistrycontract (#4719, by @MateuszNaKodach)
Documentation
- Repository Transfer notice - main (#4416, by @smcvb)
- Migration Path AI instructions (#4479, by @smcvb)
- Add Note for change in Jackson 3 converter default behaviour (#4414, PR #4496, by @hatzlj)
- Fix Note for change in Jackson 3 converter default behaviour (#4414, PR #4501, by @hatzlj)
- Restructure Release Notes navigation in framework reference (#4503, by @hatzlj)
- Relocate the Kotlin module description to include it in the correct section (#4506, by @hatzlj)
- Migration path - Data Protection - Reference to path in other repository (#28, PR #4525, by @smcvb)
- Include Axoniq Feature Indicator in navigation (#4529, by @hatzlj)
- docs: fix Antora build warnings and Vale style suggestions (#4532, by @abuijze)
- Align completeness between old Aggregate and new Entity description (#4060, PR #4562, by @laura-devriendt-lemon)
- Add agent hints for branch naming and commit messages (#4569, by @hatzlj)
- Update Documentation readme and local build/preview script (#4063, PR #4582, by @hatzlj)
- Integrate “Framework Comparison” page into Navigation and Introduction (#4597, by @smcvb)
- Adjust Subscribable Eventsource API and move reference documentation for persistent streams (#4616, by @hatzlj)
- Message Transformation / Upcasting - Documentation (#137, PR #4629, by @laura-devriendt-lemon)
- Adjust documentation on event processor assignment (#4646, by @hatzlj)
- move Event Transformation reference docs to Axoniq Framework (#137, PR #4664, by @laura-devriendt-lemon)
- Add AF 5.1.2 Release Notes (#4687, by @smcvb)
- Re-Add JdbcTokenstore to the streaming event processors reference (#4690, by @hatzlj)
- docs: change DLQ migration docs to use DeadLetterQueueConfiguration extension API (#4696, by @MateuszNaKodach)
- Document Axon Framework 4 snapshot reuse limitation (#4640, PR #4725, by @laura-devriendt-lemon)
Contributors
A heartfelt thank you to all contributors who worked on this section:
- @abuijze
- @hatzlj
- @hjohn
- @jangalinski
- @klauss42
- @laura-devriendt-lemon
- @m1l4n54v1c
- @MateuszNaKodach
- @smcvb
- @wadhwaroh-lang
Axoniq Framework
Features
- Migrate core persistent streams API from AF4 (PR #135, by @hatzlj)
- Enhancement/137/spec message transformator (PR #138, by @laura-devriendt-lemon)
- Message Transformation / Upcasting - Specification (#137, PR #143, by @laura-devriendt-lemon)
- Message Transformation / Upcasting - Module setup (phase 1) (#137, PR #151, by @laura-devriendt-lemon)
- Message Transformation / Upcasting - SPI foundation (phase 2) (#137, PR #152, by @laura-devriendt-lemon)
- Message Transformation - Transform Chain and Event Store Decoration (phase 3) (#137, PR #153, by @laura-devriendt-lemon)
- Message Transformation - Sourcing Criteria widening for sourcing (#137, PR #160, by @laura-devriendt-lemon)
- Implement SnapshotStore for PostgresqlEventStorageEngine (PR #163, by @hjohn)
- Message Transformation - Rename support (phase 4) (#137, PR #164, by @laura-devriendt-lemon)
- Message Transformation - Drop / Filter support (phase 5) (#137, PR #167, by @laura-devriendt-lemon)
- Merge Message Transformation support (#137, PR #193, by @smcvb)
- Persistent Streams Autoconfiguration (#123, PR #196, by @hatzlj)
Enhancements
- Include the data protection module in the axoniq framework bom for convenience (PR #130, by @hatzlj)
- fix the slack-release-notification.yml (PR #141, by @hatzlj)
- build: unified apidocs profile and publish workflow (PR #156, by @abuijze)
- Remove _archive folder (PR #166, by @hjohn)
- Message Transformation - Semantic matching: exact precedence + from(List) (phase 6) (#137, PR #178, by @laura-devriendt-lemon)
- Disable sonar for builds (PR #187, by @hatzlj)
- Improve flaky integration tests (PR #189, by @hatzlj)
- cleanup remainders of the _archive folder (PR #202, by @hatzlj)
- AF4 MultiSourceLegacyToken classname compatibility fix (#4633, PR #228, by @laura-devriendt-lemon)
Bug Fixes
- Port axon 5.1.x to main (PR #114, by @hatzlj)
- Align listing approach with Event Storage Engine parent page (PR #115, by @smcvb)
- Adjust import for TerminalEventMessage (PR #132, by @hatzlj)
- Fix failing tests (PR #136, by @hatzlj)
- Port (5.1.x): [#108] docs(dead-letter-queue): document DLQ transactional behavior (PR #150, by @hatzlj)
- [#4625 | Port] Use
EventTypeResolverin Axon ServerEventStorageEnginesto defaultnullrevisionto default version (PR #188, by @smcvb) - Support source with snapshot in single server call (PR #220, by @hjohn)
- Ensure message type version for Commands/Queries sent from AF4 to AF5 applications (AxonFramework#4698, PR #225, by @hatzlj)
- Allow to gracefully handle events without revision for persistent streams (AxonFramework#4625, PR #227, by @hatzlj)
Documentation
- Include Axoniq Data Protection release notes and module description in the framework reference (PR #97, by @hatzlj)
- Include Axoniq Workflow Engine release notes and module description in the framework reference (PR #99, by @hatzlj)
- Move workflow module table listing to workflow-repo for easier maintenance (PR #101, by @hatzlj)
- Add migration guide for 5.0 → 5.1 (#77, PR #127, by @hatzlj)
- Include Axoniq feature indicator in navigation (PR #107, by @hatzlj)
- Clarify migration of the AxonServerContainer from 5.0 → 5.1 (#112, PR #112, by @hatzlj)
- Add anchors for the event storage engines to allow referencing (PR #119, by @hatzlj)
- Fix the maven coordinates for axoniq-postgresql in the reference (PR #119, by @hatzlj)
- Fix Modules Documentation (remove opentracing) (PR #170, by @hatzlj)
- Introduce Framework Comparison page (PR #134, by @smcvb)
- add Event Transformation reference docs (moved from Axon Framework) (#180, PR #180, by @laura-devriendt-lemon)
- adapt moved Event Transformation docs + address review nits (#180, PR #180, by @laura-devriendt-lemon)
- Add 5.1.1 and 5.1.2 Release Notes (PR #191, by @smcvb)
- docs: use DeadLetterQueueConfiguration extension API in DLQ reference (PR #224, by @MateuszNaKodach)
- Fix configuration example for
EventProcessorDefinitionbased persistent streams configuration (PR #224, by @hatzlj)
Contributors
A heartfelt thank you to all contributors who worked on this section: