Skip to main content
zerotal

Documentation


Documentation / @zerotal/cache / index / IdempotencyOptions

Interface: IdempotencyOptions

Defined in: cache/src/IdempotencyMiddleware.ts:23

Properties

cache

cache: CacheManager | undefined

Defined in: cache/src/IdempotencyMiddleware.ts:28

CacheManager that stores idempotent responses. Required — pass via IdempotencyMiddleware.with({ cache: manager }).


ttl

ttl: number

Defined in: cache/src/IdempotencyMiddleware.ts:34

Seconds to retain a stored response. After this, the same key can be reused without replaying the previous response. Default: 86400 (24 h).


methods

methods: string[]

Defined in: cache/src/IdempotencyMiddleware.ts:40

HTTP methods subject to idempotency checks. Default: ['POST', 'PUT', 'PATCH', 'DELETE'].


header: string

Defined in: cache/src/IdempotencyMiddleware.ts:46

Request header that carries the client-supplied idempotency key. Default: 'Idempotency-Key'.


validateBody

validateBody: boolean

Defined in: cache/src/IdempotencyMiddleware.ts:53

When true, a 422 is returned if the same idempotency key arrives with a different request body. Useful for detecting accidental key reuse. Default: false.


useLock

useLock: boolean

Defined in: cache/src/IdempotencyMiddleware.ts:60

Take a cross-process lock (via the lock primitive) so only one node executes the handler for a given key at a time, even across machines. Default: true. Degrades to in-process coalescing + cache replay when no lock driver is configured.


lock?

optional lock?: LockManager

Defined in: cache/src/IdempotencyMiddleware.ts:66

Explicit lock manager. When omitted (and useLock is true), the manager is resolved from the container's lock binding at request time.