pub trait RetryableStep: Send {
// Required method
fn invoke<'a>(
&'a mut self,
exchange: Exchange,
) -> Pin<Box<dyn Future<Output = PipelineOutcome> + Send + 'a>>;
}Expand description
Object-safe retry abstraction. Unifies BoxProcessor and OutcomeSegment
for RouteErrorHandler::retry_step. See ADR-0024 amendment (Phase 4).
invoke returns PipelineOutcome (not Tower Result), preserving
Stopped(ex) state across retry attempts.
Required Methods§
fn invoke<'a>( &'a mut self, exchange: Exchange, ) -> Pin<Box<dyn Future<Output = PipelineOutcome> + Send + 'a>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl RetryableStep for BoxProcessor
BoxProcessor adapter: preserves readiness-error routing by calling
ServiceExt::ready().await before Service::call(). Readiness
failures (e.g. channel closed, circuit breaker open) become
PipelineOutcome::Failed, NOT panic or silent skip.
impl RetryableStep for OutcomeSegment
OutcomeSegment implements RetryableStep so it can participate in the retry path alongside BoxProcessor. Lives in camel-api (where both OutcomeSegment and RetryableStep are defined).