Coverage for src / mcp_server_langgraph / resilience / __init__.py: 100%

7 statements  

« prev     ^ index     » next       coverage.py v7.12.0, created at 2025-12-03 00:43 +0000

1""" 

2Resilience patterns for production-ready MCP server. 

3 

4This module provides production-grade resilience patterns: 

5- Circuit Breaker: Prevent cascade failures 

6- Retry Logic: Exponential backoff with jitter 

7- Timeout Enforcement: Prevent hanging requests 

8- Bulkhead Isolation: Resource pool limits 

9- Fallback Strategies: Graceful degradation 

10 

11See ADR-0026 for full rationale and design decisions. 

12""" 

13 

14from mcp_server_langgraph.resilience.bulkhead import BulkheadConfig, get_bulkhead, with_bulkhead 

15from mcp_server_langgraph.resilience.circuit_breaker import ( 

16 CircuitBreakerState, 

17 circuit_breaker, 

18 get_circuit_breaker, 

19 get_circuit_breaker_state, 

20 reset_circuit_breaker, 

21) 

22from mcp_server_langgraph.resilience.config import ResilienceConfig, get_resilience_config 

23from mcp_server_langgraph.resilience.fallback import ( 

24 FallbackStrategy, 

25 fail_closed, 

26 fail_open, 

27 return_empty_on_error, 

28 with_fallback, 

29) 

30from mcp_server_langgraph.resilience.retry import RetryPolicy, RetryStrategy, retry_with_backoff 

31from mcp_server_langgraph.resilience.timeout import TimeoutConfig, with_timeout 

32 

33__all__ = [ 

34 # Circuit Breaker 

35 "circuit_breaker", 

36 "CircuitBreakerState", 

37 "get_circuit_breaker", 

38 "get_circuit_breaker_state", 

39 "reset_circuit_breaker", 

40 # Retry 

41 "retry_with_backoff", 

42 "RetryPolicy", 

43 "RetryStrategy", 

44 # Timeout 

45 "with_timeout", 

46 "TimeoutConfig", 

47 # Bulkhead 

48 "with_bulkhead", 

49 "BulkheadConfig", 

50 "get_bulkhead", 

51 # Fallback 

52 "with_fallback", 

53 "fail_open", 

54 "fail_closed", 

55 "return_empty_on_error", 

56 "FallbackStrategy", 

57 # Config 

58 "ResilienceConfig", 

59 "get_resilience_config", 

60]