Skip to content
Buy me a coffee

HttpResilienceOptions

Defined in: src/fetch.ts:35

Options shared by createResilientFetch and the axios integration.

R

optional attemptTimeout?: Duration

Defined in: src/fetch.ts:41

Budget per attempt. Default 10 s.


optional circuitBreaker?: false | Omit<CircuitBreakerOptions<R>, "shouldHandle">

Defined in: src/fetch.ts:47

Circuit breaker options merged over the defaults (50% failures over the last 20 calls, 10 s break). false disables it.


optional concurrency?: number | ConcurrencyLimiterOptions

Defined in: src/fetch.ts:49

Max attempts in flight per key (bulkhead), e.g. 20 or { permitLimit: 20, queueLimit: 100 }. Default: no limit.


optional maxPipelines?: number

Defined in: src/fetch.ts:56

Max per-key pipelines kept; the least recently used is dropped beyond it. Default 100.


optional name?: string

Defined in: src/fetch.ts:37

Labels telemetry. Per-host pipelines are named <name>/<key>.


optional pipelineKey?: (url) => string

Defined in: src/fetch.ts:54

Which requests share a circuit breaker and limiter. Default url => url.origin: one per host, so a dead host doesn’t open the breaker for the others. () => 'all' shares one.

URL

string


optional retry?: false | Omit<RetryOptions<R>, "shouldHandle">

Defined in: src/fetch.ts:43

Retry options merged over the defaults (3 retries, exponential backoff from 200 ms, full jitter, Retry-After honoured). false disables retries.


optional retryOn?: RetryOn<R>

Defined in: src/fetch.ts:45

What to retry. Default: network errors, timeouts and 408/429/500/502/503/504.


optional retryUnsafeMethods?: boolean

Defined in: src/fetch.ts:58

Retry POST / PATCH without an Idempotency-Key header too. Default false: they could run twice.


optional timeProvider?: TimeProvider

Defined in: src/fetch.ts:59


optional totalTimeout?: Duration

Defined in: src/fetch.ts:39

Budget for the whole call, retries included. Default 30 s.