Skip to content

NATS Queue Bridge

@purista/nats-queue-bridge provides a JetStream-backed queue bridge for teams that already operate NATS and want queue semantics without introducing Redis only for pull-based workloads.

Capabilities

featuresupport
Durability✅ (JetStream streams + durable pull consumers)
Delayed delivery✅ (scheduled stream with due-job release)
Dead-letter queue✅ (dedicated DLQ streams per logical queue)
Lease extension✅ (working() heartbeats + lease inspection)
Lease expiry recovery✅ (ack timeout redelivery)
DLQ inspect / replay / purge
Idempotency enforcement❌ (keys are metadata only)

Safe defaults

  • JetStream is required. The bridge does not fall back to core NATS.
  • FIFO queue consumption and prefetch: 1 are the intended defaults.
  • DLQ naming follows the standard PURISTA suffix resolution, so service health and queue metrics resolve the same target.
  • Short lease TTLs are honored by adjusting the queue consumer ack timeout, while long-running workers should still call context.job.extendLease(...).

Operational notes

  • This bridge is best when the same platform already uses NATS for event traffic and wants one operational stack.
  • DLQ replay is bridge-managed, not a JetStream “magic queue replay” feature. Operators should inspect the failed payload and reason before redriving.
  • Scheduled jobs are stored separately from immediately runnable jobs, so delayed workloads do not block normal queue throughput.
  • Keep event-to-queue idempotency in advisory mode unless your worker/repository enforces dedupe.