Retry Deseni Nedir?
İngilizce: Retry Pattern
Retry deseni, geçici ağ veya servis hatalarında işlemi kontrollü aralıklarla yeniden deneyerek entegrasyon dayanıklılığını artırır.
Retry Deseni Nedir?
Retry deseni, geçici bir hata nedeniyle başarısız olan işlemin belirli kurallarla yeniden denenmesidir. Örneğin bir ödeme sağlayıcısı anlık ağ kesintisi yüzünden cevap vermezse istek hemen başarısız kabul edilmek yerine kısa aralıklarla tekrar gönderilebilir.
Bu desen kalıcı hataları gizlemek için kullanılmaz. Yanlış şifre, eksik yetki veya hatalı veri gibi durumlarda yeniden deneme yalnızca sistemi daha fazla yorar.
Nasıl Çalışır?
Sağlıklı retry tasarımında üç karar açık olmalıdır:
- Kaç kez denenecek? Sınırsız retry kuyruk ve servisleri kilitleyebilir.
- Ne kadar beklenecek? Exponential backoff, her denemede bekleme süresini artırır.
- Hangi hatalarda denenecek?
408,429,500,502,503gibi geçici kabul edilebilecek yanıtlar ayrı ele alınır.
Yoğun sistemlerde jitter eklenerek tüm istemcilerin aynı anda tekrar denemesi engellenir. Yazma işlemlerinde idempotency key kullanmak da aynı ödemenin veya siparişin iki kez oluşmasını önler.
İş Dünyasında Kullanımı
API entegrasyonlarında retry, kargo etiketi oluşturma, ödeme durumu sorgulama, muhasebe fişi gönderme ve bildirim teslimi gibi işlemlerde kesintileri yumuşatır. Ancak yanlış ayarlanmış retry, karşı servise daha fazla yük bindirip kesintiyi büyütebilir.
Ardışık hatalar devam ediyorsa circuit breaker devreye girerek bir süre yeni istekleri durdurabilir. Retry bu yüzden izleme, timeout ve idempotency ile birlikte düşünülmelidir.