Dead Letter Queue Stratejileri: Dayanıklı Olay-Güdümlü Sistemler için Production-Ready Kalıplar
DLQ stratejileri, monitoring ve recovery kalıpları için kapsamlı rehber. Circuit breaker, exponential backoff, ML-tabanlı recovery ve kaçınılması gereken anti-pattern'lar hakkında gerçek production deneyimleri.
Dead Letter Queue'lar dayanıklı olay-güdümlü sistemler inşa etmek için kritiktir. Sayısız production olayıyla uğraştıktan sonra, doğru DLQ stratejilerinin oyuncak sistemleri production-ready mimarilerden ayıran şey olduğunu öğrendim.
DLQ Nedir ve Neden İhtiyacınız Var
DLQ, başarıyla işlenemeyen mesajlar için güvenlik ağınızdır. Doğru DLQ handling olmadan, başarısız mesajlar:
- Sonsuza kadar kaybolur (sessiz hatalar)
- Tüm kuyruğu bloke eder (poison pill problemi)
- Sonsuz retry döngüleri oluşturur (cascade hatalar)
DLQ'yu sisteminizin "acil servisi" olarak düşünün - hasta mesajların teşhis ve tedavi için gittiği yer.
DLQ Implementation Pattern'ları
Pattern 1: Jitter ile Exponential Backoff
En yaygın pattern, ama çoğu implementasyon yanlış yapıyor:
Pattern 2: Circuit Breaker DLQ
Downstream servis hataları için:
Pattern 3: Content-Based DLQ Routing
Farklı mesaj tipleri farklı DLQ stratejileri gerektirir. Payment, notification, analytics için farklı maxRetries ve alertLevel. Mesaj tipi ve hata türüne göre payment-dlq-critical, retry-dlq veya investigation-dlq'ya yönlendir.
DLQ Monitoring: Temel Metriklerden Öte
Çoğu team sadece DLQ derinliğini monitor eder. İzlemeniz gerekenler:
DLQ Recovery Stratejileri
Strateji 1: ML ile Otomatik Recovery
Strateji 2: Progressive Recovery
Batch halinde recovery. Exponential delay between batches. Failure rate > 0.5 ise alert ve 1 dakika bekle. Thundering herd önle.
Cloud Provider DLQ Özellikleri
AWS SQS DLQ
RedrivePolicy ile deadLetterTargetArn, maxReceiveCount. MessageRetentionPeriod 14 gün. CloudWatch alarm ApproximateNumberOfMessagesVisible.
Azure Service Bus DLQ
MaxDeliveryCount sonrası otomatik DLQ. SubQueue.DeadLetter ile recovery.
GCP Pub/Sub DLQ
dead_letter_policy, max_delivery_attempts, retry_policy minimum/maximum_backoff.
DLQ Kaçınılacak Anti-Pattern'lar
Infinite retry, DLQ'yu unutmak, tek DLQ tüm mesaj tipleri için, monitoring eksikliği, manuel recovery olmadan.
Production DLQ Checklist
- Uygun retention periyodları yapılandır (minimum 14 gün)
- DLQ derinlik alarmları kur (> 10 mesaj)
- DLQ yaş metriklerini monitor et (1 saatten eski mesajlar)
- Bilinen hata kalıpları için otomatik recovery uygula
- Manuel araştırma için runbook'lar oluştur
- DLQ mesajlarından business impact metriklerini takip et
- Team standuplarında düzenli DLQ review'ları
- Yüksek hata oranları sırasında DLQ davranışını load test et
Gerçek Dünya DLQ Savaş Hikayeleri
Kritik Payment DLQ Olayı
DLQ'muz monitor edilmediği için payment'lar sessizce başarısız oluyordu. Mesajlar DLQ'ya gidiyordu ama hiç alarm kurulmamıştı. 50.000lık payment'ların DLQ'da sıkıştığını fark etmemiz 3 gün aldı.
Öğrenilen ders: Sadece ana kuyruk metriklerini değil, her zaman DLQ derinlik ve yaşını monitor et.
Thundering Herd DLQ Sorunu
Downstream servis kesintisi sırasında, jitter olmadığı için tüm retry girişimlerimiz eş zamanlı gerçekleşti. Bu durum, toparlanmaya çalışan servisi aşırı yükleyen bir thundering herd yarattı.
Öğrenilen ders: Retry girişimlerini yaymak için exponential backoff'a her zaman jitter ekle.
Black Friday'i Bozan Poison Pill
Hatalı biçimlendirilmiş bir mesaj sürekli yeniden işlenip order servisimizi çökertiyordu. Doğru DLQ handling olmadan, en yüksek trafiğimizin olduğu gün sonraki tüm siparişleri bloke etti.
Öğrenilen ders: Circuit breaker'lar ve farklı hata tipleri için ayrı DLQ'lar uygula.
Sonuç
İyi tasarlanmış bir DLQ stratejisi çoğu zaman küçük bir olay ile büyük bir kesinti arasındaki fark olur. Odaklan:
- Temel derinlik metriklerinin ötesinde kapsamlı monitoring
- Mesaj tipi ve hata kalıplarına dayalı akıllı routing
- Bilinen sorunlar için otomatik recovery
- Manuel müdahale için net runbook'lar
- Kalıpları geliştirmek için düzenli review'lar
Unutma: DLQ'n production güvenlik ağın. Ana işleme mantığına verdiğin özenin aynısını ona da ver.
İlgili Okuma: Olay-güdümlü sistem araçları ve kalıplarının daha geniş bir genel bakışı için olay-güdümlü mimari araçları kapsamlı rehberini görün.