Type Alias ICircuitBreakerPolicy<TMetrics>

ICircuitBreakerPolicy: {
    initialMetrics(): TMetrics;
    isEqual(metricsA: TMetrics, metricsB: TMetrics): boolean;
    trackFailure(
        currentState: CircuitBreakerTrackState<TMetrics>,
        settings: CircuitBreakerTrackSettings<TMetrics>,
    ): TMetrics;
    trackSuccess(
        currentState: CircuitBreakerTrackState<TMetrics>,
        settings: CircuitBreakerTrackSettings<TMetrics>,
    ): TMetrics;
    whenClosed(currentMetrics: TMetrics, currentDate: Date): ClosedTransitions;
    whenHalfOpened(
        currentMetrics: TMetrics,
        currentDate: Date,
    ): HalfOpenTransitions;
}

The ICircuitBreakerPolicy contract defines the circuite breaker algorithm. Note all the methods here are pure functions, meaning they should return copies and not mutate input data.

IMPORT_PATH: "@daiso-tech/core/circuit-breaker/contracts"

Type Parameters

  • TMetrics = unknown

Type declaration