src.core.error_strategies module#
Marcus Error Handling Strategies.
Advanced error handling patterns for autonomous agent environments: - Retry policies with exponential backoff - Circuit breaker pattern for external services - Fallback mechanisms for graceful degradation - Error aggregation for batch operations
Status#
AVAILABLE BUT NOT INTEGRATED into the MCP tool layer. These components
are tested in isolation but have zero imports from src/marcus_mcp/.
The simpler src/core/resilience.py decorators (@with_retry,
@with_fallback) are what production code currently uses.
This module is the recommended target for future integration when adding resilience to Kanban API calls, AI provider calls, or other external service boundaries in the MCP layer.
- class src.core.error_strategies.CircuitBreakerState[source]#
Bases:
EnumCircuit breaker states.
- CLOSED = 'closed'#
- OPEN = 'open'#
- HALF_OPEN = 'half_open'#
- class src.core.error_strategies.RetryPolicy[source]#
Bases:
EnumRetry policy types.
- NONE = 'none'#
- FIXED_DELAY = 'fixed_delay'#
- EXPONENTIAL_BACKOFF = 'exponential_backoff'#
- LINEAR_BACKOFF = 'linear_backoff'#
- JITTERED_EXPONENTIAL = 'jittered_exponential'#
- class src.core.error_strategies.RetryConfig[source]#
Bases:
objectConfiguration for retry behavior.
- retry_on: tuple[type[Exception], ...] = (<class 'src.core.error_framework.TransientError'>, <class 'src.core.error_framework.IntegrationError'>)#
- __init__(max_attempts=3, base_delay=1.0, max_delay=60.0, multiplier=2.0, jitter=True, retry_on=(<class 'src.core.error_framework.TransientError'>, <class 'src.core.error_framework.IntegrationError'>), stop_on=())#
- class src.core.error_strategies.CircuitBreakerConfig[source]#
Bases:
objectConfiguration for circuit breaker behavior.
- class src.core.error_strategies.CircuitBreakerStatus[source]#
Bases:
objectCurrent status of a circuit breaker.
- state: CircuitBreakerState = 'closed'#
- __init__(state=CircuitBreakerState.CLOSED, failure_count=0, success_count=0, last_failure_time=None, next_attempt_time=None, failure_history=<factory>)#
- class src.core.error_strategies.CircuitBreaker[source]#
Bases:
objectCircuit breaker implementation for external service calls.
Prevents cascading failures by temporarily blocking calls to failing services.
- __init__(name, config=None)[source]#
- Parameters:
name (str)
config (CircuitBreakerConfig | None)
- property lock: Lock#
Get circuit breaker lock, creating it if needed in the current event loop.
- class src.core.error_strategies.RetryHandler[source]#
Bases:
objectAdvanced retry handler with multiple backoff strategies.
Supports exponential backoff, jitter, and configurable retry policies.
- __init__(config=None)[source]#
- Parameters:
config (RetryConfig | None)
- class src.core.error_strategies.FallbackHandler[source]#
Bases:
objectHandles fallback strategies for graceful degradation.
Provides multiple fallback options when primary operations fail.
- class src.core.error_strategies.ErrorAggregator[source]#
Bases:
objectAggregates errors from batch operations.
Collects multiple errors and provides summary reporting.
- errors: List[MarcusBaseError]#
- src.core.error_strategies.with_circuit_breaker(name, config=None)[source]#
Add circuit breaker protection to functions.
- class src.core.error_strategies.ErrorStrategyRegistry[source]#
Bases:
objectRegistry for managing error handling strategies across the application.
- circuit_breakers: Dict[str, CircuitBreaker]#
- fallback_handlers: Dict[str, FallbackHandler]#
- retry_configs: Dict[str, RetryConfig]#
- get_circuit_breaker(name, config=None)[source]#
Get or create a circuit breaker for a service.
- Return type:
- Parameters:
name (str)
config (CircuitBreakerConfig | None)
- get_fallback_handler(name)[source]#
Get or create a fallback handler.
- Return type:
- Parameters:
name (str)
- register_retry_config(operation, config)[source]#
Register a retry configuration for an operation.
- Return type:
- Parameters:
operation (str)
config (RetryConfig)