Idempotency Key ve Exactly-Once Miti: Dagitik Sistemlerde Gercekci Yaklasim
Dagitik sistemlerde "exactly once" ifadesi sik kullanilir ama gercekte cogu ekip "at least once + deduplication" modeliyle calisir. Timeout, retry ve baglanti kopmalari nedeniyle tekrar istekler normaldir.
Bu nedenle write islemlerinde en guvenli yaklasim idempotency key kullanmaktir.
Tekrar istekler neden olusur?
- Istek serverda basarili olur ama istemci timeout alir
- Reverse proxy gecici hata gorup yeniden dener
- Kullanici ayni aksiyonu iki kez tiklar
- Queue consumer crash oldugu icin mesaj tekrar gelir
Temel akis
Her isleme ait sabit bir key uretin. Key daha once gorulduyse ayni sonucu donun, gorulmediyse islemi calistirip sonucu key ile birlikte kalici yazin.
Request(idempotency_key=abc123)
-> key lookup
-> varsa: onceki sonucu don
-> yoksa: islemi calistir + sonucu atomik kaydet
Uretim ortami kurallari
- Key'i tenant/user kapsaminda degerlendirin.
- Basarili ve bilinen is kurali hatalarini da kaydedin.
- Key TTL suresini retry penceresiyle uyumlu secin.
- Veri katmaninda unique constraint ile koruyun.
Sık yapilan hatalar
- Her retry denemesinde yeni key uretmek
- Yan etki olustuktan sonra key kaydetmek
- Duplicate isteklerde sadece 409 donup onceki cevabi replay etmemek
- Downstream non-idempotent cagrilari guvenli varsaymak
Sonuc
Exactly-once cogu zaman uctan uca garanti degildir. Idempotency key, tekrar istekleri kontrol altina alip write API davranisini ongorulebilir hale getirir.
İlgili Yazılar
CDN Cache Invalidation Stratejileri: Hız ve Doğruluk Dengesi
CDN cache invalidation yaklaşımlarını, versioned asset kullanımını, stale-while-revalidate desenini ve hatasız içerik güncelleme süreçlerini teknik örneklerle inceliyoruz.
Temporal ile Dayanıklı Workflow Orkestrasyonu
Uzun süren ve birden fazla servise yayılan iş süreçlerini Temporal ile güvenilir, tekrar çalıştırılabilir ve gözlemlenebilir biçimde yönetmenin pratik yol haritası.
SLO, SLI ve Error Budget: Servis Güvenilirliğini Yönetmek
SRE yaklaşımında SLI/SLO tanımlamayı, error budget ile hız-güvenilirlik dengesini kurmayı ve ekiplerin karar mekanizmasına veri taşımayı pratik örneklerle anlatıyoruz.