UNPKG

@sailboat-computer/resilience

Version:

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

126 lines (108 loc) 2.88 kB
/** * Types for the resilience framework */ // Export marine constants export * from './marine-constants'; // Import types from sailboat-types import { common } from '@sailboat-computer/sailboat-types'; // Re-export types export type HealthStatusType = common.HealthStatus; export type OperationalContextType = common.OperationalContext; export type MarineFailureTypeType = common.MarineFailureType; export type CircuitBreakerStateType = common.CircuitBreakerState; export type MarineSystemTypeType = common.MarineSystemType; /** * Circuit breaker configuration */ export interface CircuitBreakerConfig { // Basic configuration failureThreshold: number; successThreshold: number; timeout: number; // Marine-specific configuration operationalContext: OperationalContextType; failureTypes: MarineFailureTypeType[]; environmentalAdjustments: { roughSeas: boolean; lowPower: boolean; limitedConnectivity: boolean; }; // Advanced configuration volumeThreshold: number; errorPercentageThreshold: number; slowCallDurationThreshold: number; slowCallRateThreshold: number; } /** * Retry configuration */ export interface RetryConfig { // Basic configuration maxAttempts: number; initialDelayMs: number; maxDelayMs: number; // Backoff strategy backoffStrategy: 'linear' | 'exponential' | 'fibonacci' | 'random'; backoffFactor: number; // Marine-specific configuration operationalContext: OperationalContextType; failureTypes: MarineFailureTypeType[]; environmentalAdjustments: { roughSeas: boolean; lowPower: boolean; limitedConnectivity: boolean; }; } /** * Timeout configuration */ export interface TimeoutConfig { // Basic configuration timeoutMs: number; // Marine-specific configuration operationalContext: OperationalContextType; environmentalAdjustments: { roughSeas: boolean; lowPower: boolean; limitedConnectivity: boolean; }; // Advanced configuration cancelOnTimeout: boolean; timeoutStrategy: 'fixed' | 'adaptive'; } /** * Bulkhead configuration */ export interface BulkheadConfig { // Basic configuration maxConcurrent: number; maxQueueSize: number; // Marine-specific configuration operationalContext: OperationalContextType; environmentalAdjustments: { roughSeas: boolean; lowPower: boolean; limitedConnectivity: boolean; }; // Advanced configuration fairQueue: boolean; queueTimeout: number; } /** * Degradation configuration */ export interface DegradationConfig { // Basic configuration degradationLevels: { level: number; threshold: number; features: string[]; }[]; // Marine-specific configuration operationalContext: OperationalContextType; environmentalAdjustments: { roughSeas: boolean; lowPower: boolean; limitedConnectivity: boolean; }; }