Axon Framework
📈 Enhancements
- Dedicated
@EntityCreatorannotation enforcing entity creation regardless of existence (PR #4933, by @smcvb) - Cache
AnnotationMessageTypeResolverannotation look-ups | Pre-compute entity event routing (PR #4931, by @MateuszNaKodach) - Implement lowerBound on the aggregate-based consistency marker (#4815, PR #4928, by @schananas)
- Match segments against pre-resolved sequence identifiers (#4797, PR #4923, by @MateuszNaKodach)
- Add GHA to automate releases (PR #4922, by @corradom)
- Leave the processor token-store name unset by default (#4809, PR #4909, by @schananas)
- Clear the re-claim block when a split or merge fails (#4798, PR #4908, by @schananas)
🪲 Bug Fixes
SegmentChangeListner#onSegmentClaimedhas token parameter | UnifyinitializeTokenSegmentsfailure behavior (#4924, PR #4946, by @schananas)- Correctly support
@EventSourcedannotation for polymorphic entities (#4906, PR #4944, by @smcvb) - Convert message handlers to right MessageStream cardinality (PR #4943, by @CodeDrivenMitch)
- Fix broken link to entity-creator.adoc in stateful-command-handler.adoc (PR #4938, by @corradom)
- Return
ManagedEntityfromRepositoryand provided to@InjectEntityannotated parameters at all times (PR #4936, by @smcvb) - Release the token claim after the segment release listeners (#4924, PR #4935, by @schananas)
- Ensure
HierarchicalStateManagersupports Entity-subtype search (#4904, PR #4932, by @smcvb) - Fall back to the event identifier when a sequencing policy resolves nothing (#4797, PR #4914, by @schananas)
- Resolve the reset converter only when there is a reset context (#4796, PR #4913, by @schananas)
- Preserve assignable payloads without a converter (#4874, PR #4912, by @MateuszNaKodach)
- Make a batch of appended events visible atomically in the in-memory store (#4824, PR #4911, by @schananas)
- Keep the work package's stored token monotonic from the first store of a claim (#4801, #4836, PR #4910, by @schananas)
- Adopt a concurrently created config token instead of failing to start (#4802, PR #4907, by @schananas)
- Recognise the broadcast sentinel by identity instead of by value (#4800, PR #4903, by @schananas)
- Align the autoconfigured JPA gap defaults with the core defaults (#4799, PR #4902, by @schananas)
📖 Documentation
❤️ Contributors
A heartfelt thank you to all contributors who worked on this section:
Axoniq Framework
⭐ Features
- Multitenancy Data Protection support (PR #354, by @jangalinski)
📈 Enhancements
- Include
TrackingTokenonCheckpointing.onSegmentClaimed| Warn on a checkpoint past the consumed position (#350, PR #357, by @schananas)
🪲 Bug Fixes
- Distinguish a rejected append from an undetermined one (#299, PR #347, by @schananas)
HandlerExecutionExceptiondetails lost for command and query in Axon Server #323
❤️ Contributors
A heartfelt thank you to all contributors who worked on this section: