The dead-letter queue is growing. How would you recover without making the incident worse?
After this you can answer: The dead-letter queue is growing. How would you recover without making the incident worse?
Say it in 30 seconds
Section titled “Say it in 30 seconds”The deeper answer
Section titled “The deeper answer”A dead-letter queue retains messages after repeated delivery failures. It preserves evidence and gives an operator time to investigate; it does not repair a missing IAM permission, an unsupported schema or an unverified SES recipient.
MiniTickets configures three receives before redrive to a DLQ, four-day retention in the source queues and fourteen days in their DLQs. I would check when the oldest affected messages were enqueued because retention can expire evidence and work. A message already too old is not rescued by a healthy alarm.
The local redrive implementation sends to the source queue before deleting from the DLQ. A crash between those operations can duplicate the message, but the reverse order could lose it. In production, recovery should include a small sample of actual email or ready-ticket outcomes, failure rate after redrive and a plan for permanently invalid events. Replaying every bad message immediately can amplify a downstream outage.
Counter-questions
Section titled “Counter-questions”Can you inspect SQS without changing anything?
What if SES accepted the email before the failure?
Why verify the source queue too?
Where in MiniTickets
Section titled “Where in MiniTickets”Read Sqs and dlq, then inspect the jobs-dlq piece →.
infra/src/jobs/queues.ts → createJobQueues
Use the DLQ runbook and growing-DLQ case.
Read this book online: https://book.theversehub.in/