Back to Projects
redlock-universal
Distributed Redis locks with universal client support. Featured in the redis.io Redlock implementations.
<1ms
Lock acquisition
Universal
Client support
0
Dependencies
The Problem
Existing Redis lock libraries support only single clients: node-redis OR ioredis, but not both. This forces teams to choose their Redis client based on lock library compatibility, not technical merit.
The Solution
Redlock Algorithm
Full implementation with clock drift handling and distributed consensus
Universal Support
Works with both node-redis v4+ and ioredis v5+ through adapter pattern
Architecture
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Lock API │ │ Redlock │ │ Redis │
│ (Universal) │────▶│ Algorithm │────▶│ Instances │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Client │ │ Adapter │ │ Consensus │
│ Adapters │ │ Pattern │ │ Algorithm │
└─────────────┘ └─────────────┘ └─────────────┘TypeScriptRedisnode-redisioredisVitestESM/CJS
Design Decisions
Adapter Pattern
Abstract Redis client differences while preserving native performance
Zero Dependencies
No external dependencies for maximum reliability and minimal bundle size
Algorithm Correctness
Redis-spec compliant implementation over API convenience