Axon Framework v5.3.0
Axon Framework v5.3.0
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, by @abuijze)
- demo + doc for axoniq split event transformation (PR #4711, by @laura-devriendt-lemon)
- add multi-tenancy documentation to the reference guide (PR #4712, by @hatzlj)
- feat: AF5 tracing integration (PR #4713, by @MateuszNaKodach)
- Add broadcast sequence identifier for segment-spanning event delivery (PR #4742, by @schananas)
- Initial setup multi tenancy demo (PR #4743, by @laura-devriendt-lemon)
UnitOfWorknow includesProcessingLifecycleInterceptor(PR #4748, by @MateuszNaKodach)- initial demo setup with declarative approach and springboot approach + command dispatching/handling (PR #4755, by @laura-devriendt-lemon)
- Reintroduce Map-support for entity members (#4757, PR #4759, by @smcvb)
- Resolve Multi-Tenancy demo comments post-merge (PR #4774, by @laura-devriendt-lemon)
- Add per-tenant event storage to the multi-tenancy demo (PR #4775, by @laura-devriendt-lemon)
- Add per-tenant snapshotting to the multi-tenancy demo (PR #4794, by @laura-devriendt-lemon)
- Add tenant-aware event processing to the multi-tenancy demo (PR #4795, by @laura-devriendt-lemon)
- Add backport workflow (PR #4842, by @hjohn)
- Add backport workflow - Phase 2 (PR #4843, by @hjohn)
- Add backport workflow - Phase 3 (PR #4844, by @hjohn)
- Feature/backport action - Phase 5 (PR #4847, by @hjohn)
- Add project linking to backport workflow - Phase 6 (PR #4849, by @hjohn)
- Add tenant-aware query handling to the multi-tenancy demo (PR #4852, by @laura-devriendt-lemon)
- Support Kotlin nullability for @InjectEntity annotated parameters (#4856, PR #4861, by @MateuszNaKodach)
- Add a persistent-streams option to the multi-tenancy demo (PR #4876, by @hatzlj)
📈 Enhancements
- Consolidate Entity discovery for Entity-centric and Stateful-Handler-centric (PR #4609, by @smcvb)
- EventStorageEngine#source and SnapshotStore methods - add ProcessingContext parameter (PR #4723, by @MateuszNaKodach)
- replace joinAndUnwrap in subscribing processor (#4618, PR #4730, by @laura-devriendt-lemon)
- Add convenience overloads for declarative entity builders (#4171, PR #4739, by @wadhwaroh-lang)
- Enforce correct qualified name and version use (PR #4751, by @hjohn)
- Add duplicate tag and type filtering tests (PR #4753, by @hjohn)
- Make pooled processor source and token-store optional when unset (#4727, PR #4763, by @wadhwaroh-lang)
QueryBusandQueryUpdateEmitterhave and-countemit,complete, andcompleteExceptionallyoperations (PR #4764, by @smcvb)- Consolidate test log4j2 config into a single shared module (PR #4768, by @hjohn)
- Allow EntityMetamodel to be decorated without breaking ID resolution (PR #4772, by @hjohn)
- Enable direct metadata on Command- and QueryGateway dispatch (PR #4776, by @hatzlj)
- Extract snapshot sourcing composition into its own enhancer (#4791, PR #4792, by @laura-devriendt-lemon)
- Add
FutureUtils#allOrEmpty(PR #4816, by @hatzlj) - Adapt the multi-tenancy examples to multi-tenancy being enabled by default (PR #4837, by @hatzlj)
- Make
StateManagerandSnapshotStoreDescribableComponents(PR #4860, by @smcvb) - Make SpanFactory and SpanAttributesProviderRegistry DescribableComponents (PR #4862, by @MateuszNaKodach)
- Support detail conversion for
HandlerExecutionException(PR #4867, by @smcvb) - Add auto-assign, label copy and project linking to backport workflow (PR #4869, by @hjohn)
🪲 Bug Fixes
- Issue 4702 get component and get optional component consistency when working with lazy beans (#4702, PR #4732, by @Ishaan453)
- Invoke the subtype handler over a shadowed supertype handler (#4579, PR #4733, by @Develop-KIM)
- Fix navigation item for the dataprotection-extension migration path (PR #4740, by @hatzlj)
- fix(messaging): EventAppender/CommandDispatcher#forContext must not cache a context-bound wrapper (PR #4746, by @MateuszNaKodach)
- Potential fix for flakey log message verifications (PR #4747, by @hjohn)
- Do not report rolled-back events in AxonTestFixture (PR #4752, by @smcvb)
- Only resolve replay context during an active replay (PR #4758, by @smcvb)
- Resolve incorrect event routing in heterogeneous Sequencing Policy setup among Event Handling Components (PR #4769, by @MateuszNaKodach)
- fix(eventsourcing): Active entities should only receive tag-matching events during command handling phase (#4766, PR #4770, by @MateuszNaKodach)
- Only deduplicate fluent accessors for records (PR #4777, by @smcvb)
- Validate return- and parameter-type in
FieldChildEntityFieldDefinition(PR #4778, by @smcvb) - Reopen the event stream when its source completed it (PR #4787, by @smcvb)
- Fix bug where publish future could complete before events are visible (PR #4838, by @hjohn)
- Back off before reopening a stream whose source failed (#4839, PR #4841, by @laura-devriendt-lemon)
- Fix backport workflow missing checkout step - Phase 4 (PR #4845, by @hjohn)
- Invoke
MessageStreamcallbacks outside the stream lock (PR #4863, by @CodeDrivenMitch) - Ensure
Message#payloadAs(TypeReference)honors parameterized type contained inTypeReference(#4874, PR #4878, by @smcvb) - Create intercepting event store transaction per context (#4879, PR #4887, by @schananas)
- Pace stream reopens after empty clean completions (#4882, PR #4888, by @schananas)
- Use
GeneralConverterto resolve@ReplayContextannotated parameter (PR #4889, by @smcvb) - Turn synchronous subscriber failures into failed publication results (#4883, PR #4890, by @schananas)
- Branch StubProcessingContext resources instead of mutating the shared context (#4880, PR #4891, by @schananas)
- Let loadOrCreate create through a cached not-found entry (#4886, PR #4892, by @schananas)
- Judge stored progress on both bounds of a range token (#4881, PR #4893, by @schananas)
- Fine tune emit-and-count flow of
QueryUpdateEmitterandQueryBus(#4884, PR #4894, by @smcvb)
📖 Documentation
- Externalize reference-guide documentation code samples into compilable files (PR #4709, by @abuijze)
- Include AF 5.2.0 release notes (PR #4731, by @smcvb)
- Include connection-security documentation on the Spring Boot integration page (PR #4745, by @abuijze)
- Add 5.2.1 release notes (PR #4784, by @smcvb)
- Add 5.2.2 Release Notes (PR #4793, by @smcvb)
- add navigation for multi tenancy migration path (PR #4866, by @laura-devriendt-lemon)
- Add 5.2.3 release notes (PR #4875, by @smcvb)
🛠️ Dependency Upgrades
- chore(deps): bump actions/setup-java from 5.4.0 to 5.5.0 in the github-dependencies group (PR #4728, by @app/dependabot)
- chore(deps): bump the maven-dependencies group across 1 directory with 5 updates (PR #4729, by @app/dependabot)
- chore(deps): bump slackapi/slack-github-action from 3.0.3 to 3.0.5 in the github-dependencies group (PR #4736, by @app/dependabot)
- chore(deps): bump tools.jackson:jackson-bom from 3.2.0 to 3.2.1 in /examples/university-java-springboot-4 in the maven-dependencies group (PR #4737, by @app/dependabot)
- chore(deps): bump the maven-dependencies group across 1 directory with 5 updates (PR #4738, by @app/dependabot)
- chore(deps): bump the github-dependencies group with 3 updates (PR #4760, by @app/dependabot)
- chore(deps): bump the maven-dependencies group across 1 directory with 12 updates (PR #4762, by @app/dependabot)
- chore(deps): bump brace-expansion and @asciidoctor/core in /docs/_playbook (PR #4767, by @app/dependabot)
- chore(deps): bump the maven-dependencies group across 1 directory with 7 updates (PR #4783, by @app/dependabot)
- Bump the maven-dependencies group across 1 directory with 10 updates (PR #4859, by @app/dependabot)
❤️ 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, by @abuijze)
- split event transformation (#216, PR #218, by @laura-devriendt-lemon)
- multitenancy module scaffolding + integration branch (#204, PR #219, by @hatzlj)
- Infrastructure: tenant registration, resolution and wiring skeleton (PR #226, by @jangalinski)
- Add tenant aware components (PR #245, by @laura-devriendt-lemon)
- Distributed tracing based on Micrometer Tracing (PR #259, by @MateuszNaKodach)
- Migration logic for spliting type into
typeandtype_versionand maintaining an internal type tag__Tin the tags table (PR #262, by @hjohn) - Multi-Tenancy event storage (PR #263, by @jangalinski)
- spring boot auto config (#211, PR #265, by @laura-devriendt-lemon)
- Multi-Tenancy command handling (#207, PR #266, by @hatzlj)
- Multi-Tenancy query handling (#208, PR #281, by @hatzlj)
- Add multi-tenant pooled streaming read side (PR #283, by @laura-devriendt-lemon)
- Implement type queries and type appends for Postgres ESE (#52, PR #287, by @hjohn)
- Add multi-tenant persistent streams (#210, PR #307, by @hatzlj)
- Attach the tenant to a message dispatched from within a handler (#315, PR #316, by @hatzlj)
- Add entitlement checks for Multi-tenancy (PR #335, by @CodeDrivenMitch)
- Feature/backport action (PR #336, by @hjohn)
📈 Enhancements
- Split off big parts from
PostgresqlEventStorageEngineto reduce the main engine code size (PR #248, by @hjohn) - EventStorageEngine#source and SnapshotStore methods - add ProcessingContext parameter (PR #255, by @MateuszNaKodach)
- Add mutual TLS configuration properties for Axon Server connections (PR #256, by @abuijze)
- Disable some tests for coordination with Axon Framework (PR #264, by @hjohn)
- Improve watch.js for local doc rendering / improve docs readme / gitignore localLinks (PR #267, by @hatzlj)
- Switch default test SLF4J binding from Logback to Log4j2 (PR #269, by @hjohn)
DistributedQueryBusinclude and-countemit,complete, andcompleteExceptionallyoperations (PR #277, by @smcvb)- Enable multi-tenancy by default when on the classpath a... (#258, PR #303, by @hatzlj)
- Fix connection-pool leak and starved common pool on CI (PR #306, by @hjohn)
- Make all
SnapshotStoreimplementationsDescribableComponents(PR #312, by @smcvb) - Implement describeTo for SpanFactory implementations (PR #314, by @MateuszNaKodach)
- Align CLAUDE.md wildcard-import rule with .editorconfig (PR #328, by @hatzlj)
- Add entitlement checks for Micrometer Tracing (PR #334, by @MateuszNaKodach)
🪲 Bug Fixes
- Release notes fix - Move bug fix from 5.1.2 to 5.2.0 (PR #249, by @smcvb)
- Fix incorrect token position assumption in
MultiStreamableEventSourceTest(PR #297, by @hjohn) - Increase AxonServerContainer startup timeout to 2 minutes and log slow starts (PR #301, by @hjohn)
- Fix tracing integration tests failing under default-on multi-tenancy (PR #325, by @laura-devriendt-lemon)
HandlerExecutionExceptiondetails are carried over (#323, PR #326, by @smcvb)- Fix event metadata dropped on append in AggregateBasedAxonServerEventStorageEngine (#330, PR #332, by @hatzlj)
- Multi-tenant application shutdown blows the lifecycle phase budget and can leak live connectors (#319, PR #333, by @jangalinski)
📖 Documentation
- Include AAF 5.2.0 release notes (PR #233, by @smcvb)
- Externalize reference-guide code samples into compilable sources (PR #268, by @abuijze)
- Add 5.2.1 release notes (PR #291, by @smcvb)
- Add 5.2.2 Release Notes (PR #294, by @smcvb)
- Externalize the multi-tenancy code samples + reference demo (#280, PR #313, by @laura-devriendt-lemon)
- Documentation multi tenancy migration path (#212, PR #324, by @laura-devriendt-lemon)
- Add 5.2.3 release notes (PR #331, by @smcvb)
🛠️ Dependency Upgrades
- Bump actions/setup-java from 5.4.0 to 5.5.0 in the github-dependencies group across 1 directory (PR #231, by @app/dependabot)
- Bump the maven-dependencies group with 3 updates (PR #232, by @app/dependabot)
- Bump slackapi/slack-github-action from 3.0.3 to 3.0.5 in the github-dependencies group (PR #246, by @app/dependabot)
- Bump the maven-dependencies group with 2 updates (PR #247, by @app/dependabot)
- chore(deps): bump the github-dependencies group with 3 updates (PR #272, by @app/dependabot)
- chore(deps): bump the maven-dependencies group with 2 updates (PR #273, by @app/dependabot)
- chore(deps-dev): bump body-parser from 2.2.1 to 2.3.0 in /docs/_playbook (PR #275, by @app/dependabot)
- chore(deps): bump brace-expansion and @asciidoctor/core in /docs/_playbook (PR #276, by @app/dependabot)
- chore(deps): bump the maven-dependencies group with 4 updates (PR #290, by @app/dependabot)
- Upgrade the entitlement manager to 1.1.0 (PR #304, by @smcvb)
- chore(deps): bump the maven-dependencies group across 1 directory with 7 updates (PR #311, by @app/dependabot)
❤️ Contributors
A heartfelt thank you to all contributors who worked on this section: