{"id":1479,"date":"2026-11-05T18:00:00","date_gmt":"2026-11-05T18:00:00","guid":{"rendered":"https:\/\/wade.one\/blog\/?p=1479"},"modified":"2026-11-05T18:00:00","modified_gmt":"2026-11-05T18:00:00","slug":"a-dead-letter-queue-needs-someone-to-read-it","status":"publish","type":"post","link":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/","title":{"rendered":"A Dead-Letter Queue Needs Someone to Read It"},"content":{"rendered":"<p>Moving a failed message to a dead-letter queue can keep a worker from repeatedly tripping over the same problem. It does not complete the work that message represented. If nobody notices the queue filling up, the system has become better at hiding unfinished business.<\/p>\n<p>The <a href=\"https:\/\/docs.aws.amazon.com\/AWSSimpleQueueService\/latest\/SQSDeveloperGuide\/sqs-dead-letter-queues.html\">Amazon SQS guidance<\/a> describes isolating unsuccessful messages, investigating the cause and redriving them. Receive thresholds and retention need deliberate choices. A queue that discards the evidence before anyone can investigate is not giving the team much of a recovery window.<\/p>\n<p>I would give the queue an owner, an actionable alert and a short process for deciding what happens next. Some messages can be retried after a fix; others need correcting or a separate business decision. Replaying everything without understanding the failure can reproduce the same problem, and repeated processing still needs to handle side effects safely.<\/p>\n<p>The reassuring state is that failed work is visible and has a route back into the system. &#8220;The main queue is empty&#8221; is not enough if the dead-letter queue contains the orders, imports or notifications people are waiting for. Check the place the failures went before declaring the job finished.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Moving a failed message to a dead-letter queue can keep a worker from repeatedly tripping over the same problem.<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[13],"tags":[52,312,311],"class_list":["post-1479","post","type-post","status-publish","format-standard","hentry","category-programming","tag-aws","tag-dead-letter-queues","tag-sqs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A Dead-Letter Queue Needs Someone to Read It - wade.one<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Dead-Letter Queue Needs Someone to Read It - wade.one\" \/>\n<meta property=\"og:description\" content=\"Moving a failed message to a dead-letter queue can keep a worker from repeatedly tripping over the same problem.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/\" \/>\n<meta property=\"og:site_name\" content=\"wade.one\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-05T18:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1518\" \/>\n\t<meta property=\"og:image:height\" content=\"1506\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:site\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/11\\\/05\\\/a-dead-letter-queue-needs-someone-to-read-it\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/11\\\/05\\\/a-dead-letter-queue-needs-someone-to-read-it\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"A Dead-Letter Queue Needs Someone to Read It\",\"datePublished\":\"2026-11-05T18:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/11\\\/05\\\/a-dead-letter-queue-needs-someone-to-read-it\\\/\"},\"wordCount\":199,\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"keywords\":[\"aws\",\"dead-letter-queues\",\"sqs\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/11\\\/05\\\/a-dead-letter-queue-needs-someone-to-read-it\\\/\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/11\\\/05\\\/a-dead-letter-queue-needs-someone-to-read-it\\\/\",\"name\":\"A Dead-Letter Queue Needs Someone to Read It - wade.one\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\"},\"datePublished\":\"2026-11-05T18:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/11\\\/05\\\/a-dead-letter-queue-needs-someone-to-read-it\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/11\\\/05\\\/a-dead-letter-queue-needs-someone-to-read-it\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/11\\\/05\\\/a-dead-letter-queue-needs-someone-to-read-it\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wade.one\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Dead-Letter Queue Needs Someone to Read It\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/\",\"name\":\"wade.one\",\"description\":\"wade womersley - york based software engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wade.one\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\",\"name\":\"Wade Womersley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"contentUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"width\":202,\"height\":200,\"caption\":\"Wade Womersley\"},\"logo\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Dead-Letter Queue Needs Someone to Read It - wade.one","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/","og_locale":"en_GB","og_type":"article","og_title":"A Dead-Letter Queue Needs Someone to Read It - wade.one","og_description":"Moving a failed message to a dead-letter queue can keep a worker from repeatedly tripping over the same problem.","og_url":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/","og_site_name":"wade.one","article_published_time":"2026-11-05T18:00:00+00:00","og_image":[{"width":1518,"height":1506,"url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@wadewomersley","twitter_site":"@wadewomersley","twitter_misc":{"Estimated reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/#article","isPartOf":{"@id":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/"},"author":{"name":"","@id":""},"headline":"A Dead-Letter Queue Needs Someone to Read It","datePublished":"2026-11-05T18:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/"},"wordCount":199,"publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"keywords":["aws","dead-letter-queues","sqs"],"articleSection":["Programming"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/","url":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/","name":"A Dead-Letter Queue Needs Someone to Read It - wade.one","isPartOf":{"@id":"https:\/\/wade.one\/blog\/#website"},"datePublished":"2026-11-05T18:00:00+00:00","breadcrumb":{"@id":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wade.one\/blog\/2026\/11\/05\/a-dead-letter-queue-needs-someone-to-read-it\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wade.one\/blog\/"},{"@type":"ListItem","position":2,"name":"A Dead-Letter Queue Needs Someone to Read It"}]},{"@type":"WebSite","@id":"https:\/\/wade.one\/blog\/#website","url":"https:\/\/wade.one\/blog\/","name":"wade.one","description":"wade womersley - york based software engineer","publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wade.one\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3","name":"Wade Womersley","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","contentUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","width":202,"height":200,"caption":"Wade Womersley"},"logo":{"@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png"}}]}},"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1167,"url":"https:\/\/wade.one\/blog\/2026\/03\/31\/serverless-is-great-until-you-need-to-debug-it-at-2-a-m\/","url_meta":{"origin":1479,"position":0},"title":"Serverless Is Great Until You Need to Debug It at 2 a.m.","author":"","date":"March 31, 2026","format":false,"excerpt":"I still like serverless, but the tradeoff is obvious when something breaks at 2 a.m. The architecture is easy to ship and harder to reason about when you need logs, context, and a fast path to the real failure.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1378,"url":"https:\/\/wade.one\/blog\/2026\/07\/17\/cloudformation-express-mode-is-fast-because-it-stops-waiting\/","url_meta":{"origin":1479,"position":1},"title":"CloudFormation Express Mode Is Fast Because It Stops Waiting","author":"","date":"July 17, 2026","format":false,"excerpt":"CloudFormation Express mode can cut deployment waits sharply, but configuration complete is not the same as ready for traffic.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1452,"url":"https:\/\/wade.one\/blog\/2026\/10\/26\/a-giant-wolf-in-the-coffee-queue-is-peak-convention\/","url_meta":{"origin":1479,"position":2},"title":"A Giant Wolf in the Coffee Queue Is Peak Convention","author":"","date":"October 26, 2026","format":false,"excerpt":"One of my favourite things about furry conventions is how quickly the wonderfully ridiculous starts to look normal.","rel":"","context":"In &quot;Random Stuff&quot;","block_context":{"text":"Random Stuff","link":"https:\/\/wade.one\/blog\/category\/random-stuff\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1118,"url":"https:\/\/wade.one\/blog\/2023\/03\/26\/expanding-on-performance-of-redis-vs-mongodb-for-a-push-pull-system\/","url_meta":{"origin":1479,"position":3},"title":"Expanding on performance of Redis vs MongoDB for a push\/pull system","author":"Wade","date":"March 26, 2023","format":false,"excerpt":"When it comes to building a push\/pop system, both Redis and MongoDB can be used as effective solutions. However, there are a few key differences between these two databases that can impact which one you choose for your system. Redis is an in-memory data structure store that can be used\u2026","rel":"","context":"In &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/wade.one\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1169,"url":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/","url_meta":{"origin":1479,"position":4},"title":"The Problem With &#8220;Simple&#8221; AWS Architectures","author":"Wade","date":"April 2, 2026","format":false,"excerpt":"AWS diagrams love to look simple. The problem is that the operational reality behind them is usually doing a lot more work than the picture admits.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1180,"url":"https:\/\/wade.one\/blog\/2026\/04\/12\/the-hardest-part-of-serverless-is-not-the-code\/","url_meta":{"origin":1479,"position":5},"title":"The Hardest Part of Serverless Is Not the Code","author":"","date":"April 12, 2026","format":false,"excerpt":"The hard part of serverless is usually not writing the handler. It is understanding what failed, what the event looked like, and why the system changed underneath you.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/comments?post=1479"}],"version-history":[{"count":1,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1479\/revisions"}],"predecessor-version":[{"id":1493,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1479\/revisions\/1493"}],"wp:attachment":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/media?parent=1479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/categories?post=1479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/tags?post=1479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}