1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! # Resilience Patterns
//!
//! Production-ready resilience patterns for building fault-tolerant applications.
//!
//! ## Patterns Included
//!
//! - **Circuit Breaker**: Prevent cascade failures by failing fast
//! - **Retry**: Automatic retry with configurable backoff strategies
//! - **Bulkhead**: Resource isolation to prevent overload
//! - **Timeout**: Configurable timeout policies
//! - **Fallback**: Graceful degradation when operations fail
//!
//! ## Quick Start
//!
//! ```rust,ignore
//! use armature::prelude::*;
//! use armature::resilience::{CircuitBreaker, CircuitBreakerConfig, Retry, RetryConfig};
//!
//! // Circuit breaker that opens after 5 failures
//! let circuit = CircuitBreaker::new(CircuitBreakerConfig {
//! failure_threshold: 5,
//! reset_timeout: Duration::from_secs(30),
//! ..Default::default()
//! });
//!
//! // Execute with circuit breaker protection
//! let result = circuit.call(|| async {
//! external_api_call().await
//! }).await;
//! ```
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;