Skip to content

CircuitBreakerConfig

Defined in: src/policies/resilience/circuit-breaker.ts:120

Base configuration shared by all policies

optional failureOn: number[]

Defined in: src/policies/resilience/circuit-breaker.ts:128

Status codes considered failures. Default: [500, 502, 503, 504].


optional failureThreshold: number

Defined in: src/policies/resilience/circuit-breaker.ts:122

Number of failures before opening the circuit. Default: 5.


optional halfOpenMax: number

Defined in: src/policies/resilience/circuit-breaker.ts:126

Max concurrent probes allowed in half-open state. Default: 1.


optional key: (c) => string

Defined in: src/policies/resilience/circuit-breaker.ts:132

Key extractor. Default: request URL pathname.

Context

string


optional onStateChange: (key, from, to) => void | Promise<void>

Defined in: src/policies/resilience/circuit-breaker.ts:145

Callback invoked on every state transition.

Called via safeCall so errors are swallowed — a failing callback never blocks traffic. Useful for metrics, logging, or alerting.

string

The circuit key that transitioned.

CircuitState

The previous circuit state.

CircuitState

The new circuit state.

void | Promise<void>


optional openStatusCode: number

Defined in: src/policies/resilience/circuit-breaker.ts:134

HTTP status code when the circuit is open. Default: 503.


optional resetTimeoutMs: number

Defined in: src/policies/resilience/circuit-breaker.ts:124

Time in ms before transitioning from open → half-open. Default: 30000.


optional skip: (c) => boolean | Promise<boolean>

Defined in: src/policies/types.ts:33

Skip this policy when condition returns true

unknown

boolean | Promise<boolean>

PolicyConfig.skip


optional store: CircuitBreakerStore

Defined in: src/policies/resilience/circuit-breaker.ts:130

Storage backend. Default: InMemoryCircuitBreakerStore.