Skip to content

Redis Queue Bridge

@purista/redis-queue-bridge provides a production-ready queue backend that relies on Redis core primitives (LPUSH, BRPOP, sorted sets for scheduling) instead of Redis Streams. Use it when you need durable pull-based workloads that survive restarts and support delayed delivery.

Capabilities

featuresupport
Durability✅ (Redis persistence / replication)
Delayed delivery✅ (sorted-set scheduler)
Dead-letter queue✅ (dedicated Redis keys or custom suffix)
Lease extension✅ (PEXPIRE heartbeat + extendLease)
Metrics✅ (context.queue.metrics.<queueId>)

Configuration

ts
import { RedisQueueBridge } from '@purista/redis-queue-bridge'

const queueBridge = new RedisQueueBridge({
  url: process.env.REDIS_URL ?? 'redis://localhost:6379',
  keyPrefix: 'acme:queue:',
  deadLetterSuffix: '.dlq',
  defaultVisibilityTimeoutMs: 15 * 60_000,
})

const service = await myServiceV1Service.getInstance(eventBridge, { queueBridge, logger })
await service.start()
  • Set a key prefix per environment/tenant to avoid collisions.
  • Enable Redis persistence/replication for true durability.
  • Override lifecycle defaults per queue when workloads differ (long-running AI jobs vs. short webhooks).

Operational tips

  • Use Redis ACLs or network policies so only the queue bridge can touch the key prefix.
  • Monitor queue metrics (pending, inFlight, deadLetter, oldestAgeMs) to scale worker pools or alert on DLQ growth.
  • Combine Redis Sentinel/Cluster for HA; the bridge re-establishes leases after reconnects so jobs are not lost.
  • Keep DLQ keys small by draining them through tooling or an administrative worker.