interceptor

Register an interceptor to observe and potentially veto saga step execution.

Interceptors are invoked before and after each step (StepPhase.BeforeStepPhase.After, LIFO for After), and after each compensation action (StepPhase.Compensation). An interceptor returning InterceptorOutcome.Veto from a StepPhase.Before phase prevents the step from executing and initiates compensation of prior completed steps.

The interceptor receives the current S state as a read-only snapshot — interceptors cannot mutate saga state; that remains the responsibility of step bodies.

Registration order matters — see SagaInterceptor for ordering semantics.

Return

This builder for method chaining

Parameters

interceptor

The interceptor to register


fun interceptor(handler: suspend (StepPhase<C, R, S>) -> InterceptorOutcome): StatefulSagaBuilder<C, R, S>

Register an interceptor using a lambda.

Convenience method for creating an interceptor from a suspend lambda.

Return

This builder for method chaining

Parameters

handler

Suspend function that intercepts step phases