INDEPENDENT MINDSOFTWARE × SEARCH
Menü
← Tüm içerikler
11.10.2026

Yanıt kaybolduğunda işlem bitmiş olabilir.

Ağ hatası, sunucunun işlemi yapmadığını kanıtlamaz. Tekrar deneme tasarımı tam da bu belirsizlikte başlar.

OK / OKUMA MASASI

Bir cümle seçip kopyala: kaynak adresi alıntıya eklenir. Seçim yoksa yazının adresi kopyalanır.

Bu yazının haritası · 5 bölüm

Kullanıcı bir kez gönderir. Sunucu kaydı oluşturur ama yanıt kullanıcıya ulaşmaz. Ekranda hata görünür ve kullanıcı yeniden dener. Sunucu ikinci isteği yeni bir işlem sayarsa, tek niyet iki kayda dönüşebilir. Bu durum için yalnızca düğmeyi gri yapmak yeterli değildir.

Niyet ile isteği ayırmak

Bir iş niyeti birden fazla HTTP isteğiyle gelebilir. İdempotent davranış, aynı niyet tekrarlandığında istenmeyen ek etki üretmemeyi hedefler. HTTP yöntemlerinin tanımlanmış özellikleri vardır; fakat bir POST işleminin tekrar davranışını uygulamanın ayrıca tasarlaması gerekir. Ağdaki belirsizlik arayüz sınırında çözülemez.

İşlem anahtarı bir başlangıçtır

Uygun işlemlerde aynı niyet için tek bir anahtar üretilebilir. Sunucu anahtarı, işlemin sahibi ve istek içeriğiyle ilişkilendirir. Aynı anahtar farklı veriyle gelirse ne yapılacağı açık olmalıdır. Anahtarı kontrol edip sonra kayıt eklemek, iki eşzamanlı istek arasında yarış bırakabilir; veritabanı kısıtı ve işlem sınırı birlikte düşünülür.

Sonucu hatırlamak

Tekrar gelen isteğe 'zaten var' demek her zaman yeterli değildir. İlk işlemin sonucu veya durumunu döndürebilmek kullanıcının ne olduğunu anlamasını sağlar. Bekleyen, tamamlanan ve başarısız işlemlerin ömrü de tanımlanmalıdır. Sonsuza kadar tutulan anahtarların maliyetiyle kısa sürede silinenlerin tekrar riski arasında karar gerekir.

Yan etkiler ayrı bir sınırdır

Veritabanına bir kayıt yazıp ardından e-posta göndermek iki ayrı etkidir. Kayıt tekilleştirilse bile gönderim tekrar edebilir. Kuyruk veya işlem günlüğü gibi yaklaşımlar bu sınırı daha açık hâle getirebilir. Buradan her sistem için tek bir teknoloji sonucu çıkarmam; önce hangi etkinin tekrarının kabul edilemez olduğunu belirlerim.

Kabul sorusu

Bir kullanıcının aynı niyeti art arda ve eşzamanlı geldiğinde hangi durum oluşacak? Yanıt kaybolursa kullanıcı işlemin durumuna nasıl ulaşacak? Başarılı bir tekrar tasarımı, yalnızca ikinci kaydı engellemez; belirsizliği de açıklanabilir bir duruma dönüştürür. Bu yazıdaki yaklaşım bu sitede uygulanmış bir idempotency altyapısı iddiası değildir.

Kaynak: Resmî kaynak ↗