← ClaudeAtlas

resilience-patternslisted

Use when adding retry logic, circuit breakers, rate limiting, or fault-tolerance patterns in the Lexigram framework
dbtinoy-/lexigram-framework-skills · ★ 1 · AI & Automation · score 64
Install: claude install-skill dbtinoy-/lexigram-framework-skills
# Resilience Patterns ## Overview Lexigram provides composable fault-tolerance primitives: retry, circuit breaker, bulkhead, rate limiter, and timeout. Patterns compose into a `ResiliencePipeline`. ## Decorators All decorators take config objects, not raw keyword arguments. ```python from lexigram.resilience import retry, circuit_breaker, bulkhead, with_timeout from lexigram.resilience import RetryConfig, CircuitBreakerConfig, BulkheadConfig, TimeoutConfig, CircuitBreakerRegistry @retry(RetryConfig(max_attempts=3, base_delay=1.0, backoff_factor=2.0)) @circuit_breaker("external-api", registry=CircuitBreakerRegistry(), config=CircuitBreakerConfig(failure_threshold=5, recovery_timeout=30)) @bulkhead(BulkheadConfig(max_concurrent=10, queue_size=20)) @with_timeout(TimeoutConfig(timeout=30.0)) async def call_external_api(payload: dict) -> Result[Response, DomainError]: return await self.client.post(payload) ``` ## Programmatic API ```python from lexigram.resilience import ( RetryConfig, CircuitBreaker, RetryPolicy, CircuitBreakerConfig, CircuitBreakerRegistry, ResiliencePipeline, TimeoutConfig, ) # Retry config = RetryConfig(max_attempts=3, base_delay=1.0, backoff_factor=2.0, jitter=True) policy = RetryPolicy(config) result = await policy.execute(lambda: fetch_data()) # Circuit breaker — use protect() as context manager cb = CircuitBreaker(CircuitBreakerConfig(failure_threshold=5, recovery_timeout=30.0)) async with cb.protect(): result = await call_ser