Expand description
Resilience utilities: retry logic, backoff, rate limiting, bulkheads.
This module provides patterns to protect services from overload:
RetryConfig: Exponential backoff for transient failuresRateLimiter: Token bucket to prevent thundering herdBulkhead: 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 releasedStructs§
- Bulkhead
- Bulkhead pattern: limits concurrent operations to prevent resource exhaustion.
- Bulkhead
Full - Error when bulkhead is full.
- Rate
Limit Config - Configuration for rate limiting.
- Rate
Limiter - Token bucket rate limiter.
- Retry
Config - Configuration for connection retry behavior.