This repository was archived by the owner on Jul 4, 2025. It is now read-only.
Repository navigation
Release 0.40.18 Spring Boot 3.2.*
Pre-release
Pre-release
What's Changed
- Release 0.40.18 by @cloudcreate-dk in #101
Full Changelog: 0.40.17...0.40.18
- Clarified
Inbox/OutboxUnitOfWork/transaction handling - Improved lag logging in
SubscriberGlobalOrderMicrometerMonitor - All
Classes.forNamenow use a classloader when converting Fully Qualified Java Class names to Class instances. - Added
getClassLoaderandsetClassLoadertoJSONSerializerto encapsulate setting the class loader on the underlying JSON serializer implementation. - Added new methods to
AggregateEventStreamPersistenceStrategyresolveGlobalEventOrderSequenceNamefindLowestGlobalEventOrderPersisted
- Added
EventStore#findLowestGlobalEventOrderPersisted(AggregateType) PostgresqlDurableSubscriptionRepository- Added
EventStorea constructor argument - Removed
HandleAwareUnitOfWorkFactory<?> unitOfWorkFactoryargument fromPostgresqlDurableSubscriptionRepository, which acquires theHandleAwareUnitOfWorkFactoryfrom theEventStore createResumePointnow usesEventStore.findLowestGlobalEventOrderPersistedto lookup the lowestGlobalEventOrderpersisted and uses this value if it's greater than the providedonFirstSubscriptionSubscribeFromAndIncludingGlobalOrder(which typically defaults toGlobalEventOrder#FIRST_GLOBAL_EVENT_ORDER)- This solves an issue where (Re)Subscriptions after the EventStream table(s) have been truncated, but the corresponding
GlobalEventOrdersequence hasn't been reset, would result in a slow catchup towards the lowest persistedGlobalEventOrder, due to EventStream Gap detection being cautious with regards to how fast Subscriptions increase the global-event-order range that's included in EventStore polling requests.
- This solves an issue where (Re)Subscriptions after the EventStream table(s) have been truncated, but the corresponding
- Added
- Switched to use log-level
DEBUGforSqlExecutionTimeLogger.logException, instead of levelERROR - Improved
PostgresqlEventStreamGapHandlerlog output - Improved the
OptimisticAppendToStreamExceptiondetection inSeparateTablePerAggregateTypePersistenceStrategyand removed the cause exception fromOptimisticAppendToStreamExceptionandAppendToStreamException - Improved
OptimisticAppendToStreamExceptiontesting inSingleTenantPostgresqlEventStoreIT - Improved EventJSON, EventMetaDataJSON, EventMetaData and PersistedEvent - added unit tests
- Improved
EventStoreSubscriptionManager_subscribeToAggregateEventsAsynchronously_ITtest - Moved
Lifecycleto theSharedmodule - keptLifecycleinFoundationfor backwards compatibility EventBusnow extendsLifecycle- Redesigned the
LocalEventBus- Removed
Optional's from constructors and introduced a Builder - async publisher code, which now has improved Overflow handling. It supports controlling the Flux backpressure buffer size, queue task cap size, overflow max retries
- Improved shutdown logic
- Removed
- Improved
EventStoreEventBus- Removed
Optional's from constructors
- Removed
- Added equals/hashCode/toString to
EventJSONTest - Added
BeforeCommitProcessingStatusreturn value toUnitOfWorkLifecycleCallback#beforeCommitto allowGenericHandleAwareUnitOfWorkFactoryandSpringTransactionAwareEventStoreUnitOfWorkFactoryto rerun the beforeCommit phase to capture aggregate changes resulting from in-transaction event handling (e.g. from code listening to theEventBus) - Changed the
UnitOfWorkLifecycleCallbackinFlexAggregateRepositoryandStatefulAggregateRepositoryto returnBeforeCommitProcessingStatus.REQUIREDas long as each beforeCommit run returns changes to aggregates. - Added
infomethod toUnitOfWork - Added debug logging of
UnitOfWork#infoinUnitOfWorkFactory - Added copying
PersistedEvent's list inPersistedEventssince the associated lists are reset inEventStoreManagedUnitOfWorkacross beforeCommit runs - Adjusted before/after commit callback logic in
SpringTransactionAwareEventStoreUnitOfWorkFactory - Renamed Spring EventStore integration test classes from being called "Test" to "IT"
- Added
ReactivePropertiestoEssentialsComponentsConfigurationto allow controlling theLocalEventBus/EventStoreEventBusproperties - Updated README.md
- Added support for
exclusivelySubscribeToAggregateEventsInTransactioninEventStoreSubscriptionManager(work in progress) - Added
InTransactionEventProcessor(work in progress)
Updated to Kotlin 2.0.21
Updated 3rd party dependencies
- Spring Boot 3.2.12
- Spring Framework 6.1.15
- Reactor 2023.0.12
- Spring Data MongoDB 4.2.12
- Spring Data JPA 3.2.12
- mongodb-driver-sync 4.11.5
- log4j-to-slf4j 2.24.2
- micrometer 1.12.13
- micrometer-tracing 1.2.12
- netty 4.1.115.Final
- JUnit 5.11.3
- TestContainers 1.20.4
- JDBI 3.47.0
- Jackson 2.18.1
- LogBack 1.5.12
Updated Maven plugins
- maven-javadoc-plugin 3.10.1
- maven-dependency-plugin 3.8.1
- maven-failsafe-plugin / maven-surefire-plugin 3.5.2
- versions-maven-plugin 2.18.0
- dependency-check-maven 11.1.0