Skip to content
Buy me a coffee

LockStore

Defined in: src/lock.ts:29

Lease storage behind LockStrategy. Every method must be atomic for its key, so adapters (Redis, Postgres) can be swapped in:

  • acquire: if the key has no live lease, store { owner, expires: now + ttlMs }, bump the key’s fencing token and return it; otherwise return undefined. Tokens must only ever increase per key, also across expiry and release.
  • renew: if the live lease belongs to owner, push its expiry to now + ttlMs and return true; otherwise false.
  • release: delete the lease only if it belongs to owner (never someone else’s lease that took over after expiry).

acquire(key, owner, ttlMs): Promise<{ fencingToken: number; } | undefined>

Defined in: src/lock.ts:30

string

string

number

Promise<{ fencingToken: number; } | undefined>


release(key, owner): Promise<void>

Defined in: src/lock.ts:32

string

string

Promise<void>


renew(key, owner, ttlMs): Promise<boolean>

Defined in: src/lock.ts:31

string

string

number

Promise<boolean>