{
  "id": 19579268,
  "title": "Node.js retry design: queues, dead-letter handling, and cron's narrow role",
  "url": "https://urgent.news/2026/11/12/node-js-retry-design-queues-dead-letter-handling-and-crons-narrow-role",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-12T00:58:15.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/corneliushayes8579/nodejs-retry-design-queues-dead-letter-handling-and-crons-narrow-role-1goc"
  },
  "original_language": "en",
  "account": null,
  "summary": "When dealing with failed Node.js SaaS background jobs, it is recommended to use a queue with worker-driven retries and a dead-letter queue (DLQ). The consumer must be idempotent, as standard delivery is at-least-once. Cron should be used for periodic cleanup or a DLQ review, not for representing each failed job. BullMQ is a Node.js deployment already built around Redis and can be a reasonable fit when that runtime is already an intentional dependency. RabbitMQ and Amazon SQS are alternatives that offer broker-level control and a dead-letter queue model, respectively, which can also fit the same retry pattern. The recommendation is to use a queue as the default, with a failure belonging to one job, one acknowledgement decision, and one route to later inspection. A schedule only indicates when to run something, while a queue provides a unit of work with a delivery lifecycle.",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}