Interface SubscriptionPositionStorageConfig
- All Known Subinterfaces:
SubscriptionPositionStorageConfig.UseSubscriptionPositionInStorage
- All Known Implementing Classes:
SubscriptionPositionStorageConfig.DontUseSubscriptionPositionInStorage,SubscriptionPositionStorageConfig.PersistSubscriptionPositionDuringCatchupPhase,SubscriptionPositionStorageConfig.UseOnlySubscriptionPositionInStorage
public sealed interface SubscriptionPositionStorageConfig
permits SubscriptionPositionStorageConfig.DontUseSubscriptionPositionInStorage, SubscriptionPositionStorageConfig.UseSubscriptionPositionInStorage
Configures if and how subscription position persistence should be handled during the catch-up phase.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final recordstatic final recordstatic final recordstatic interface -
Method Summary
Static MethodsModifier and TypeMethodDescriptionDon't use a subscription position storage.Use a specific storage instance.
-
Method Details
-
dontUseSubscriptionPositionStorage
static SubscriptionPositionStorageConfig.DontUseSubscriptionPositionInStorage dontUseSubscriptionPositionStorage()Don't use a subscription position storage. The catch-up subscription will start from beginning of time each time it is started (for example each time the application is restarted).- Returns:
- An instance of
SubscriptionPositionStorageConfig.DontUseSubscriptionPositionInStorage.
-
useSubscriptionPositionStorage
static SubscriptionPositionStorageConfig.UseSubscriptionPositionInStorage useSubscriptionPositionStorage(SubscriptionPositionStorage storage) Use a specific storage instance. The catch-up subscription will use this storage to check if a position has already been persisted, and if so the catch-up subscription, will continue from this position. The catch-up subscription will delegate to the wrapping subscription if the position belongs to it.
This is really useful if you want to start-off with a catch-up subscription but then automatically continue with from the wrapped subscription position once the events have caught up.
Note that if this setting is not combined withSubscriptionPositionStorageConfig.UseSubscriptionPositionInStorage.andPersistSubscriptionPositionDuringCatchupPhaseForEveryNEvents(int)orSubscriptionPositionStorageConfig.UseSubscriptionPositionInStorage.andPersistSubscriptionPositionDuringCatchupPhaseWhen(Predicate)the subscription position is will not be stored during the catch-up phase. This means that if the application crashes during catch-up it'll restart from the beginning when the application is restarted. Combine this settings with any of the two methods defined above to alleviate this, if deemed required.- Parameters:
storage- The storage to use. Must be the same instance as used by the wrapped subscription in order to allow continuing from the subscription position on application restart.- Returns:
- A
SubscriptionPositionStorageConfig.UseSubscriptionPositionInStorageinstance.
-