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
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?
optionallock?: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.