UNPKG

@sailboat-computer/resilience

Version:

Enhanced resilience patterns for sailboat computer v3 with marine-specific adaptations

112 lines 2.99 kB
/** * Marine-specific circuit breaker implementation */ import { CircuitBreakerConfig, CircuitBreakerMetrics, ResilienceResult, ResilienceEvent, MarineEnvironmentStatus } from '../types'; import { CircuitBreakerStateType } from '../types/marine-constants'; /** * Enhanced circuit breaker with marine-specific adaptations */ export declare class MarineCircuitBreaker { private config; private metrics; private eventListeners; private marineEnvironment?; constructor(name: string, config?: Partial<CircuitBreakerConfig>); /** * Execute operation with circuit breaker protection */ execute<T>(operation: () => Promise<T>, operationName?: string): Promise<ResilienceResult<T>>; /** * Update marine environment status for adaptive behavior */ updateMarineEnvironment(environment: MarineEnvironmentStatus): void; /** * Get current circuit breaker metrics */ getMetrics(): CircuitBreakerMetrics; /** * Get current circuit breaker state */ getState(): CircuitBreakerStateType; /** * Force circuit breaker to specific state (for testing/emergency) */ forceState(state: CircuitBreakerStateType, reason?: string): void; /** * Add event listener for circuit breaker events */ onEvent(listener: (event: ResilienceEvent) => void): void; /** * Reset circuit breaker metrics (for testing/maintenance) */ reset(): void; /** * Check if circuit breaker allows execution */ private canExecute; /** * Execute operation with timeout */ private executeWithTimeout; /** * Calculate timeout based on marine conditions */ private calculateTimeout; /** * Classify failure type for marine-specific handling */ private classifyFailure; /** * Handle successful operation */ private onSuccess; /** * Handle failed operation */ private onFailure; /** * Update marine-specific failure counters */ private updateMarineFailureCounters; /** * Check if circuit breaker should open */ private shouldOpenCircuit; /** * Transition to OPEN state */ private transitionToOpen; /** * Transition to HALF_OPEN state */ private transitionToHalfOpen; /** * Transition to CLOSED state */ private transitionToClosed; /** * Calculate recent successes (for half-open state) */ private calculateRecentSuccesses; /** * Update average response time */ private updateAverageResponseTime; /** * Adjust configuration for marine conditions */ private adjustForMarineConditions; /** * Get current marine context */ private getMarineContext; /** * Emit resilience event */ private emitEvent; /** * Initialize metrics */ private initializeMetrics; } //# sourceMappingURL=MarineCircuitBreaker.d.ts.map