Teknik ve entegrasyon

İdempotent istek nedir?

İdempotent istek, aynı isteğin bir kez de birden çok kez de gönderilmesi aynı sonucu doğuran istektir; tekrar denemelerde çift kayıt ve çift işlem riskini önler.

Diğer adları: İdempotentlik, Idempotency, Tekrar güvenli istek

İdempotentlik, "iki kere basmak bir kere basmakla aynı sonucu versin" ilkesidir. Ağ hatalarında yazılım bir isteğin ulaşıp ulaşmadığını her zaman bilemez ve isteği tekrar gönderir. İstek idempotent değilse bu tekrar, ikinci bir sipariş, ikinci bir stok düşümü ya da ikinci bir fatura üretebilir.

HTTP yöntemlerinde idempotentlik

RFC 9110 bazı yöntemleri tanımı gereği idempotent sayar:

Yöntemİdempotent mi?Neden
GETEvetYalnız okur
PUTEvet"Stok 12 olsun" iki kez söylense de stok 12'dir
DELETEEvetSilinmiş kayıt ikinci kez silinmez
POSTHayır"Yeni fatura oluştur" iki kez söylenirse iki fatura oluşabilir

E-ticarette örnekler

  • Mutlak değer göndermek: "Stoku 1 azalt" yerine "stok 11 olsun" demek idempotenttir. Tekrar gönderilse de sonuç bozulmaz. Pazaryeri stok servisleri genellikle mutlak adet alır.
  • Sipariş numarasıyla tekil işlem: Aynı sipariş webhook ve polling ile iki kez gelebilir. Saystok işlenen siparişleri mağaza, platform ve sipariş numarası üçlüsüyle kaydeder; aynı sipariş ikinci kez geldiğinde stok yeniden düşülmez.
  • Çift faturayı önlemek: Saystok fatura kesilirken önce sipariş için tekil bir "işleniyor" kaydı açar. Aynı siparişe ikinci istek gelirse işlem reddedilir. Sonucu belirsiz kalan bir denemeden sonra, kullanıcı panelden kontrol ettiğini onaylamadan otomatik tekrar yapılmaz.

Platform tarafında tekrar kuralları

Bazı platformlar tekrarları kendisi engeller. Trendyol'un stok ve fiyat güncelleme dokümanına göre gövde değişmeden aynı istek 15 dakika boyunca tekrar gönderilemez. Bu kural sistemi korur, ama yazılımın "gönderildi mi?" sorusunu kendi kayıtlarıyla cevaplamasını gerektirir.

Tasarım önerileri

  • Her işlem için benzersiz bir anahtar belirleyin: sipariş numarası, fatura için sipariş kimliği, iade için iade numarası.
  • Tekrar denemeden önce işlemin durumunu sorgulayın.
  • Sonucu belirsiz işlemleri ayrı işaretleyin ve insan onayına bırakın.

Fatura tarafında benzer bir kimlik için ETTN, tekrarların kaynağı için webhook ve polling maddelerine bakın.

Daha fazlası

İlgili terimler

Kaynaklar

← Sözlüğün tamamı

Pazaryeri işlerinizi tek panelde toplayın

30 gün ücretsiz. Kart bilgisi istemiyoruz, taahhüt yok.