Laravel Queue Dead-Letter &amp; Retry Patterns | Mohamed Said        [  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png)   Mohamed Said Laravel Backend Engineer  ](https://www.msaied.com) [ Home ](https://www.msaied.com) [ Projects ](https://www.msaied.com/projects) [ Articles  ](https://www.msaied.com/articles) [ Certificates ](https://www.msaied.com/certificates) [ Contact ](https://www.msaied.com#contact-section) 

       [  ](https://github.com/EG-Mohamed)       

 [ Home ](https://www.msaied.com) [ Projects ](https://www.msaied.com/projects) [ Articles ](https://www.msaied.com/articles) [ Certificates ](https://www.msaied.com/certificates) [ Contact ](https://www.msaied.com#contact-section) 

  [ home ](https://www.msaied.com)    [ articles ](https://www.msaied.com/articles)    Laravel Queues in Production: Dead-Letter Patterns, Retry Strategies, and Observability        On this page       1. [  The Problem With Default Queue Failure Handling ](#the-problem-with-default-queue-failure-handling)
2. [  1. Retry Budgets With Exponential Back-off ](#1-retry-budgets-with-exponential-back-off)
3. [  2. Dead-Letter Queue Routing ](#2-dead-letter-queue-routing)
4. [  3. Structured Observability With Job Events ](#3-structured-observability-with-job-events)
5. [  Horizon Supervisor Alignment ](#horizon-supervisor-alignment)
6. [  Key Takeaways ](#key-takeaways)

  ![Laravel Queues in Production: Dead-Letter Patterns, Retry Strategies, and Observability](https://cdn.msaied.com/716/262173aca18154738c1257f3a77cd2fa.png)

  #laravel   #queues   #production   #observability   #reliability  

 Laravel Queues in Production: Dead-Letter Patterns, Retry Strategies, and Observability 
=========================================================================================

     29 Sep 2026      1 min read    ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said  

       Table of contents

1. [  01   The Problem With Default Queue Failure Handling  ](#the-problem-with-default-queue-failure-handling)
2. [  02   1. Retry Budgets With Exponential Back-off  ](#1-retry-budgets-with-exponential-back-off)
3. [  03   2. Dead-Letter Queue Routing  ](#2-dead-letter-queue-routing)
4. [  04   3. Structured Observability With Job Events  ](#3-structured-observability-with-job-events)
5. [  05   Horizon Supervisor Alignment  ](#horizon-supervisor-alignment)
6. [  06   Key Takeaways  ](#key-takeaways)

 The Problem With Default Queue Failure Handling
-----------------------------------------------

Laravel's queue system ships with a `failed_jobs` table and a `--tries` flag. For a side project that's fine. In production, under real load, you need more: **retry budgets that decay**, **dead-letter routing**, and **structured telemetry** so on-call engineers know *what* failed, *why*, and *how often*.

This article covers three concrete patterns you can drop into any Laravel application today.

---

1. Retry Budgets With Exponential Back-off
------------------------------------------

The default `retryAfter` is a fixed delay. Exponential back-off prevents thundering-herd retries when a downstream service recovers slowly.

```php
