Skip to main content

RetryableStep

Trait RetryableStep 

Source
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§

Source

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§

Source§

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.

Source§

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).