Module resilience

Module resilience 

Source
Expand description

Resilience utilities: retry logic, backoff, rate limiting, bulkheads.

This module provides patterns to protect services from overload:

  • RetryConfig: Exponential backoff for transient failures
  • RateLimiter: Token bucket to prevent thundering herd
  • Bulkhead: Semaphore to limit concurrent operations

§Example

use replication_engine::resilience::{RateLimiter, Bulkhead, RateLimitConfig};

// Rate limit: max 1000 events/sec with burst of 100
let limiter = RateLimiter::new(RateLimitConfig::default());
limiter.acquire().await; // Blocks if over limit

// Bulkhead: max 10 concurrent connections
let bulkhead = Bulkhead::new(10);
let _permit = bulkhead.acquire().await?;
// permit dropped = slot released

Structs§

Bulkhead
Bulkhead pattern: limits concurrent operations to prevent resource exhaustion.
BulkheadFull
Error when bulkhead is full.
RateLimitConfig
Configuration for rate limiting.
RateLimiter
Token bucket rate limiter.
RetryConfig
Configuration for connection retry behavior.