QA
Senior LevelREST APIs & Web Services

How do you build resilient Webhook delivery systems with Dead Letter Queues (DLQ)?

❓ Interview Prompt: Explain Webhook delivery architecture, exponential retry backoff schedules, worker queues, Dead Letter Queues (DLQ), and manual replay tooling.

Building enterprise-grade webhook delivery systems that reliably deliver millions of notifications even when customer endpoints experience outages:

Delivery Architecture:

1
Worker Queue: Webhook worker reads events from Redis/RabbitMQ.
2
Exponential Retry Schedule: Retries failing endpoints up to 10 times over 24 hours (e.g. at 1m, 5m, 15m, 1h, 6h, 12h, 24h).
3
Dead Letter Queue (DLQ): If all 10 retry attempts fail, the webhook payload is moved to a DLQ.
4
Admin UI Replay: Exposes a dashboard for developers to inspect failed payloads and trigger manual one-click replays after fixing their server!

Code Implementation Example

typescript
export async function processWebhookDelivery(event: WebhookEvent) {
  try {
    await sendHttpWebhook(event.targetUrl, event.payload, event.signature);
  } catch (err) {
    if (event.attemptCount >= MAX_RETRIES) {
      // Move to Dead Letter Queue (DLQ) for inspection & manual replay!
      await dlqQueue.add(event);
      await notifyUserWebhookDisabled(event.tenantId, event.targetUrl);
    } else {
      // Schedule next exponential retry...
      await retryQueue.add(event, { delay: calculateBackoff(event.attemptCount) });
    }
  }
}
💡Routing failed webhooks to Dead Letter Queue (DLQ) after retry exhaustion.
🎯 Interview Key Takeaway

Route failed webhooks to Dead Letter Queues after retry attempts exhaust, providing manual replay tools for developers.

#Webhooks#DLQ#Dead Letter Queue#Retry#Senior
Back to all REST APIs & Web Services Questions→

More REST APIs & Web Services Interview Questions

Beginner LevelREST APIs & Web Services

What is HTTP Method Idempotency and how do you implement Idempotency Keys for REST APIs?

Beginner LevelREST APIs & Web Services

What are standard HTTP Status Codes (200, 201, 204, 400, 401, 403, 404, 409, 429, 500, 503)?

Beginner LevelREST APIs & Web Services

What are HTTP Verbs (GET, POST, PUT, PATCH, DELETE) and when to use PUT vs PATCH?