@sailboat-computer/resilience
Version:
Enhanced resilience patterns for sailboat computer v3 with marine-specific adaptations
112 lines • 2.99 kB
TypeScript
/**
* 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