Package-level declarations

Types

Link copied to clipboard

Abstract base class for filters that notify wait plans about command processing completion. These filters intercept message processing pipelines and send notifications to waiting clients when specific processing stages are reached.

Link copied to clipboard
data class ChainWaitTarget(val function: NamedFunctionInfoData, val tail: WaitingChainTail) : WaitTarget
Link copied to clipboard

Enumeration of command processing stages.

Link copied to clipboard

Interface for objects that have an associated command stage.

Link copied to clipboard
Link copied to clipboard

Interface for defining command wait endpoints. Command wait endpoints specify where command processing results should be sent when using wait plans in distributed scenarios.

Link copied to clipboard

Interface for notifying command wait endpoints about processing results. After command processors complete their work, they send results to waiting clients through implementations of this interface.

Link copied to clipboard
class CommandWaitNotifierSubscriber<E : MessageExchange<*, M>, M : Message<*, *>, CommandId, NamedBoundedContext, AggregateIdCapable>(commandWaitNotifier: CommandWaitNotifier, processingStage: CommandStage, waitPlan: ExtractedWaitPlan, messageExchange: E, actual: CoreSubscriber<in Void>) : BaseSubscriber<Void>

Subscriber that handles command processing completion and sends wait notifications. This subscriber wraps the actual subscriber and intercepts completion/error events to send appropriate wait signals to waiting clients.

Link copied to clipboard
class DefaultWaitCoordinator(streamQueueLinkSize: Int = DEFAULT_WAIT_STREAM_QUEUE_LINK_SIZE) : WaitCoordinator
Link copied to clipboard

Filter that notifies wait plans when domain events are handled by event processors. Intercepts the domain event dispatcher pipeline to send EVENT_HANDLED stage notifications.

Link copied to clipboard
data class ExtractedWaitPlan(val endpoint: String, val waitCommandId: String, val plan: WaitPlan) : CommandWaitEndpoint, WaitCommandIdCapable, MessagePropagator
Link copied to clipboard

Local implementation of CommandWaitNotifier for in-process notifications. This notifier forwards wait signals to registered wait handles within the same JVM instance.

Link copied to clipboard
class MonoCommandWaitNotifier<E : MessageExchange<*, M>, M : Message<*, *>, CommandId, NamedBoundedContext, AggregateIdCapable>(commandWaitNotifier: CommandWaitNotifier, processingStage: CommandStage, messageExchange: E, source: Mono<Void>) : Mono<Void>

A Mono wrapper that automatically notifies wait plans when command processing completes. This class intercepts the completion of a Mono operation and sends appropriate wait signals based on the processing stage and message exchange.

Link copied to clipboard

Interface for objects that may have an aggregate version.

Link copied to clipboard

Filter that notifies wait plans when command processing is complete. Intercepts the command dispatcher pipeline to send PROCESSED stage notifications.

Link copied to clipboard

Filter that notifies wait plans when projections are updated. Intercepts the projection dispatcher pipeline to send PROJECTED stage notifications.

Link copied to clipboard

Filter that notifies wait plans when domain events are handled by sagas. Intercepts the stateless saga dispatcher pipeline to send SAGA_HANDLED stage notifications.

Link copied to clipboard

Interface for objects that have a signal timestamp.

Link copied to clipboard

Simple implementation of CommandWaitEndpoint. Provides a basic data class wrapper for endpoint strings.

Link copied to clipboard
data class SimpleWaitPlan(val waitCommandId: String, val target: WaitTarget, val supportVoidCommand: Boolean = false) : WaitPlan
Link copied to clipboard
data class SimpleWaitSignal(val id: String, val waitCommandId: String, val commandId: String, val aggregateId: AggregateId, val stage: CommandStage, val function: FunctionInfoData, val aggregateVersion: Int? = null, val isLastProjection: Boolean = false, val errorCode: String = ErrorCodes.SUCCEEDED, val errorMsg: String = ErrorCodes.SUCCEEDED_MESSAGE, val bindingErrors: List<BindingError> = emptyList(), val result: Map<String, Any> = emptyMap(), val commands: List<String> = listOf(), val signalTime: Long = System.currentTimeMillis()) : WaitSignal

Simple implementation of WaitSignal.

Link copied to clipboard
@Order(value = -2147483648)
class SnapshotNotifierFilter(commandWaitNotifier: CommandWaitNotifier) : AbstractNotifierFilter<StateEventExchange<*>, StateEvent<*>>

Filter that notifies wait plans when aggregate snapshots are generated. Intercepts the snapshot dispatcher pipeline to send SNAPSHOT stage notifications.

Link copied to clipboard
data class StageWaitTarget(val stage: CommandStage, val function: NamedFunctionInfoData? = null) : WaitTarget
Link copied to clipboard

Interface for objects that have an associated wait command ID. The wait command ID is used to correlate wait plans with their corresponding command executions in distributed scenarios.

Link copied to clipboard
interface WaitCoordinator
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
sealed interface WaitTarget

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun isLocalWaitCommandId(commandWaitId: String): Boolean

Determines if a command wait ID belongs to the current JVM instance. Uses the global ID generator to check if the machine ID in the wait ID matches the current machine's ID.

Link copied to clipboard

Extension function to notify and forget using an extracted wait plan. Only sends notification if the wait plan should be notified for this signal.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun <E : MessageExchange<*, M>, M : Message<*, *>, CommandId, NamedBoundedContext, AggregateIdCapable> Mono<Void>.thenNotifyAndForget(commandWaitNotifier: CommandWaitNotifier, processingStage: CommandStage, messageExchange: E): Mono<Void>

Extension function that wraps a Mono to automatically notify wait plans on completion. This provides a convenient way to add wait notification behavior to any Mono operation in the command processing pipeline.