İçeriğe Geç

Webhook tekrarları ve idempotent işlem nedir?

Webhook bildirimlerinin yeniden gelmesi, aynı siparişin yeniden işlenmesini gerektirmez.

Yazar: AnsiklopediGenel KavramAltyapı ve Entegrasyon
AdPix tarafından hazırlanan açıklayıcı şema.

Bildirim ve İşlem Arasındaki Fark

Webhook, bir sistemde gerçekleşen olayı başka bir sisteme haber veren bildirimdir. Siparişin oluşması, ürün bilgisinin değişmesi veya ödemenin sonuçlanması buna örnek olabilir. Shopify belgelerinde webhook, değişiklikleri sürekli sorgulamaya alternatif olarak tanımlanır. Bildirimin taşıdığı olay ile işletmenin bu olaydan sonra yaptığı işlem ayrı kayıtlardır.

Bir sipariş bildirimi depoya hazırlama görevi açtırabilir. Aynı sipariş için ikinci bir bildirimin ulaşması ise ikinci bir sipariş verildiğini göstermez. İşletme açısından temel ayrım, kaç mesaj geldiği ile kaç gerçek iş oluştuğu arasındadır. Otomasyonun güvenilirliği bu ayrımı koruyabilmesine bağlıdır.

Tekrar Denemenin Nedeni

Bildirim gönderildiğinde karşı sistemin yanıtı alınamayabilir. Bunun nedeni geçici bağlantı sorunu veya alıcının işlemi zamanında yanıtlayamaması olabilir. Stripe, başarısız teslimatlar için yeniden deneme davranışını ve aynı olayın birden fazla kez ulaşabileceğini belgeler. Bu nedenle bildirim sayısının sipariş sayısından yüksek olması tek başına hata kanıtı değildir.

Yeniden deneme, geçici kesintiden sonra işin devam etmesini sağlayan bir davranıştır. Ancak alıcı uygulama ilk mesajda işlemi tamamladığı hâlde yanıt kaybolmuşsa, sonraki mesaj tamamlanmış işi yeniden başlatabilir. Bildirimi tekrar almak ile işlemi tekrar yapmak arasındaki karar alıcı sistemdedir.

İdempotent İşlemin Anlamı

İdempotent işlem, aynı iş talebi tekrar işlendiğinde ilk başarılı sonucun ötesinde ek bir değişiklik oluşmamasıdır. Siparişe ait hazırlama görevi zaten açılmışsa yeni görev oluşturulmaması bu anlayışın işletmedeki karşılığıdır. Stripe, işlenmiş olay kimliklerinin kaydedilmesini ve aynı olayların tekrar işlenmemesini önerir.

Bunun için bir işlemin kimliğinin açık olması gerekir. Müşterinin aynı üründen daha sonra verdiği yeni sipariş ayrı bir iştir. Aynı siparişin yinelenen bildirimi ise mevcut işlemi temsil eder. Tekilleştirme, birbirine benzeyen gerçek siparişlerin yanlışlıkla birleştirilmesi anlamına gelmez.

Teslimat Kaydı ve İş Sonucu

Shopify teslimat kayıtları, bildirimin yanıtını ve başarısız denemelerini inceleme olanağı verir. Bu kayıt, entegrasyona ulaşma durumunu açıklar; işletmenin depoda veya muhasebede beklediği sonucun ayrıca izlenmesi gerekir. Örneğin bildirim alınmış, fakat hazırlama görevi başka bir sistemde bekliyor olabilir.

Bu ayrımdan çıkarılabilecek işletme ölçütü, yalnızca başarılı bildirim yüzdesi değildir. Bekleyen işlerin yaşı, müdahale gerektiren kayıtlar ve tamamlanan siparişlerle eşleşmeyen görevler de incelenebilir. Böylece iletişim sorunu ile işleme sorunu aynı başlık altında kaybolmaz.

Varsayımsal Sipariş Örneği

Bir kırtasiye mağazasının tek siparişte üç defter sattığını düşünelim. İlk bildirim üzerine depoda bir hazırlama kaydı açılmış olsun. Yanıt karşı tarafa ulaşmadığı için bildirim yeniden geldiğinde entegrasyon aynı siparişin mevcut görevini bulur ve yeni görev açmaz. Depo toplam üç defter hazırlar.

Mağaza yalnızca gelen mesajları saysaydı iki hazırlama kaydı ve altı defterlik toplama listesi oluşabilirdi. Örnekte korunan şey bir yazılım kaydından daha geniştir: doğru paket miktarı, depo emeği ve müşterinin sipariş geçmişi birlikte korunur. Bu, varsayımsal bir işletme senaryosudur.

Kesinti Sonrasında Tutarlılık

Shopify, webhook teslimatının her durumda garanti olmadığını ve verilerin dönemsel olarak karşılaştırılmasını önerir. Dolayısıyla tekrarları ayıklamak, hiç ulaşmamış olayları bulma ihtiyacını ortadan kaldırmaz. İki sistemdeki siparişlerin karşılaştırılması, eksik aktarılmış kayıtların belirlenmesini sağlar.

Operasyon açısından güvenilir bir düzen, yinelenen bildirimlerin ek iş üretmemesini ve eksik işlerin sonradan bulunabilmesini birlikte kapsar. Kontrolün sorumlusu ile müdahale gerektiren durumlar tanımlandığında, kesinti sonrası inceleme kişisel hafızaya bağımlı kalmaz. Otomasyonun sonucu, kaynağındaki gerçek siparişle açıklanabilir hâle gelir.

Bu Yazıdaki Terimler 1 Kavram

Kısa açıklamaları burada okuyabilir, ayrıntılar için sözlüğe geçebilirsiniz.

Başarısız Teslimat
Başarısız teslimat, kargonun alıcıya ilk denemede ulaştırılamamasıdır; alıcının adreste bulunmaması, adresin hatalı olması ya da teslimin reddedilmesi gibi nedenlerle paket yeniden denenir ya da şubeye döner.

Bu Konuda Nasıl Destek Oluyoruz?

AdPix’in bu alandaki hizmet kapsamını ve çalışma sürecini inceleyin.