« Tüm yayınlar

Retry bir döngü değil, bir veri yapısıdır

Retry mekanizmalarının basit bir döngü değil, sıralama ve durumu yöneten bir veri yapısı olarak ele alınması gerektiğini anlatan mühendislik analizi.

Dağıtık sistemlerde yazılan retry (yeniden deneme) kodları genellikle basit bir döngü olarak ele alınır: dene, bekle, tekrar dene, pes et. Tek bir izole işlem için bu yaklaşım doğrudur. Ancak bir akışta bazı öğeler başarısız olup yeniden denenirken diğerleri sorunsuzca geçtiğinde, sonuç sırası bozulmuş bir geçmiş halini alır: 1, 2, 4, 5, 6, 7, 8, 9, 3 gibi. Bu, önbellek ısıtma gibi işlemler için önemsizdir ama bir zaman çizelgesi, defter, sohbet ya da denetim izi için sistemin sessizce geçmişi yeniden düzenlediği anlamına gelir.

Bu yazı, herhangi bir retry mekanizması kurmadan önce sorulması gereken üç kritik soruyu ortaya koyuyor: Sıra önemli mi? Tekrarlama önemli mi? Bayatlık (staleness) önemli mi? Bu sorulardan herhangi birine 'evet' yanıtı, sıra numaraları, idempotency anahtarları veya TTL gibi ek mekanizmalar gerektirir — yani retry artık bir döngü değil, durum ve değişmezleri yöneten bir veri yapısıdır.

Mühendisler için bu ayrım, orta seviye ile kıdemli sistem tasarımı arasındaki sessiz çizgilerden biri. Kıdemli düşünme, işlemin başarılı olup olmadığını değil, sistemin ürettiği hikayenin ağ sorunlu bir gün yaşadığında hâlâ doğru kalıp kalmayacağını sorgular. AI kodlama ajanlarının çalışmalarını olay akışlarından yeniden inşa eden araçlar gibi gözlemci-merkezli sistemlerin artışıyla, bu düşünme biçimi giderek daha kritik hale geliyor.