Dead Letter Queue (DLQ)
Başarısız teslimatlar kaybolmamalıdır. DLQ onları korur, böylece neyin yanlış gittiğini anlayabilir ve düzeltebilirsiniz.
Sorun
Tüm tekrarlar tükendikten sonra olaya ne olur? Çoğu webhook sisteminde, sessizce düşürülür. Başarısız olduğunu asla bilmezsiniz ve veri sonsuza kadar kaybolur.
Bu, ödemeler veya sipariş güncellemeleri gibi kritik olaylar için özellikle acı vericidir — bunları kaybetmek, gelir kaybı veya mutsuz müşteriler anlamına gelir.
DLQ Nasıl Çalışır
Bir teslimat tüm tekrar denemelerini tükettiğinde, HookSniff onu düşürmek yerine Dead Letter Queue'ya taşır. DLQ her şeyi korur:
- Orijinal payload — Tam olay verisi
- Tüm deneme detayları — Her tekrar için durum kodları, yanıt gövdeleri, zaman damgaları
- Zamanlama — Her deneme ne zaman yapıldı ve ne kadar sürdü
- Hata bağlamı — Her deneme neden başarısız oldu
DLQ kayıtlarını API veya dashboard üzerinden inceleyebilir ve sorunu düzelttikten sonra tek tıklamayla tekrar oynatabilirsiniz.
Webhook'lar DLQ'ya Ne Zaman Gider?
Bir teslimat şu durumlarda DLQ'ya taşınır:
- Tüm tekrar denemeleri tükenmiş (varsayılan: 5 deneme, uç nokta başına yapılandırılabilir)
- Uç nokta devre dışı bırakılmış
- Teslimat çok uzun süredir beklemede (eski teslimat zaman aşımı)
Yaygın başarısızlık nedenleri:
- Uç nokta tutarlı şekilde 5xx hataları döndürüyor
- Uç nokta erişilemez (DNS hatası, bağlantı zaman aşımı)
- TLS sertifika sorunları
- Uç nokta temizlenmeyen 429 hız limitleri döndürüyor
DLQ Kayıtlarını İnceleme
API üzerinden başarısız teslimatları sorgulayın:
curl "https://hooksniff-api-1046140057667.europe-west1.run.app/v1/webhooks?status=failed" \
-H "Authorization: Bearer hr_live_YOUR_KEY"Yanıt, teslimat detaylarının tamamını içerir:
{
"id": "wh_xyz789",
"endpoint_id": "ep_abc123",
"event": "order.created",
"status": "failed",
"attempt_count": 3,
"attempts": [
{ "attempt": 1, "status": 500, "error": "Internal Server Error", "timestamp": "2026-01-15T10:30:00Z" },
{ "attempt": 2, "status": 500, "error": "Internal Server Error", "timestamp": "2026-01-15T10:30:01Z" },
{ "attempt": 3, "status": 500, "error": "Internal Server Error", "timestamp": "2026-01-15T10:30:03Z" }
],
"payload": { "order_id": "12345", "total": 99.99 },
"created_at": "2026-01-15T10:30:00Z"
}Başarısız Teslimatları Tekrar Oynatma
Sorunu düzelttikten sonra, teslimatı tekrar oynatın. Bu, deneme sayacını sıfırlar ve yeni bir tekrar programıyla tekrar kuyruğa alır:
curl -X POST https://hooksniff-api-1046140057667.europe-west1.run.app/v1/webhooks/wh_xyz789/replay \
-H "Authorization: Bearer hr_live_YOUR_KEY"Dashboard'dan tek tıklamayla da tekrar oynatabilirsiniz. Birden fazla başarısız teslimat için toplu tekrar oynatma mevcuttur.
DLQ Saklama Süresi
DLQ kayıtları planınıza göre saklanır:
| Plan | Saklama | Maks DLQ Kaydı |
|---|---|---|
| Developer ($0) | 7 gün | 100 |
| Startup ($24/ay) | 14 gün | 30.000 |
| Pro ($49/ay) | 180 gün | 100.000 |
| Enterprise ($149/ay) | Özel | Sınırsız |
Saklama süresi dolduktan sonra, DLQ kayıtları kalıcı olarak silinir. Süresi dolmadan önce önemli verileri dışa aktarın.