Occurrent 0.19.0 is released with several improvements and bug fixes.
Backward Incompatible Changes
- CatchupSubscriptionModel subscriptions are now started in a background thread by default. Call the “waitUntilStarted()” on the Subscription to make is synchronous.
- When using “in-memory” subscriptions, by doing e.g.
@Subscription(id="myId", startAt = BEGINNING_OF_TIME, resumeBehavior = SAME_AS_START)
, the subscription will be started on all nodes even when a CompetingConsumerSubscriptionModel is used.
All Changes:
- Made OccurrentAnnotationBeanPostProcessor a static bean in OccurrentMongoAutoConfiguration to avoid Spring warning logs when booting up
- Fixed a bug in OccurrentAnnotationBeanPostProcessor that caused
@Subscription(id="myId", startAt = BEGINNING_OF_TIME)
not to replay events from the beginning of time - CompetingConsumerSubscriptionModel supports delegating to parent subscription model if the
StartAt
position returnsnull
. This means that the CompetingConsumerSubscriptionModel can be bypassed for certain subscriptions. This is useful if you have an in-memory subscription on multiple nodes with aCompetingConsumerSubscriptionModel
. - Added an overloaded method to SubscriptionModelLifeCycle (implemented by most SubscriptionModels) start allows you to start a subscription model without automatically starting all paused subscriptions. This method is called
start
and takes a boolean that tells if all subscriptions should be automatically started when the subscription model starts. - When using “in-memory” subscriptions, by doing e.g.
@Subscription(id="myId", startAt = BEGINNING_OF_TIME, resumeBehavior = SAME_AS_START)
, the subscription will be started on all nodes even when a CompetingConsumerSubscriptionModel is used. - The waitUntilStarted() method in the Subscription interface is now a default method.
- CatchupSubscriptionModel subscriptions are now started in a background thread by default. Call the “waitUntilStarted()” on the Subscription to make is synchronous.
- The java.util.Stream returned from SpringMongoEventStore is now automatically closed when the last element is consumed.
- Added ability to specify whether the subscription should “waitUntilStarted” in the Subscriptions DSL.
Dependency Upgrades
- Upgraded Spring Boot from 3.2.5 to 3.3.1
- Upgraded Kotlin from 1.9.23 to 2.0.0
- Upgraded Mongo sync driver from 4.11.2 to 5.1.1
- Upgraded Jackson from 2.15.4 to 2.17.1
- Upgraded reactor from 3.6.5 to 3.6.7
- Upgraded jobrunr from 7.1.1 to 7.2.1
- Upgraded amqp-client from 5.20.0 to 5.21.0
- Upgraded spring-aspects from 6.1.1 to 6.1.10
- Upgraded spring-retry from 2.0.3 to 2.0.6
- Upgraded spring-hateoas from 2.2.0 to 2.3.0
- Upgraded spring-data-mongodb from 4.3.0 to 4.3.1
- Upgraded kotlinx-collections-immutable-jvm from 0.3.4 to 0.3.7
- Upgraded arrow-core from 1.2.1 to 1.2.4
- Upgraded jetbrains annotations from 22.0.0 to 24.1.0
- Upgraded logback-classic from 1.4.14 to 1.5.6