syncguard
Version:
Functional TypeScript library for distributed locking across microservices. Prevents race conditions with Redis, PostgreSQL, Firestore, and custom backends. Features automatic lock management, timeout handling, and extensible architecture.
15 lines (14 loc) • 666 B
TypeScript
import Redis from "ioredis";
import type { LockBackend } from "../common/backend.js";
import type { RedisBackendOptions, RedisCapabilities } from "./types.js";
/**
* Creates Redis-based distributed lock backend using Lua scripts for atomicity.
*
* Storage: Lock data at {keyPrefix}{lockKey}, lockId index at {keyPrefix}id:{lockId}
*
* @param redis - ioredis client instance
* @param options - Backend configuration (keyPrefix, ttl, tolerance)
* @returns LockBackend with server-side time authority
* @see docs/specs/redis-backend.md
*/
export declare function createRedisBackend(redis: Redis, options?: RedisBackendOptions): LockBackend<RedisCapabilities>;