Webhook ne demek?
Webhook, bir yazılım sisteminde belirli bir olay gerçekleştiğinde, önceden tanımlanmış bir adrese (URL) otomatik olarak veri gönderen bir bildirim yöntemidir. Türkçede sık sık "olay tabanlı geri çağırma" olarak da ifade edilir. Temel fikir basittir: bir şey olduğunda, ilgili sistem bunu beklemeden ve sorgulamaya gerek kalmadan karşı tarafa iletir.
Bu yaklaşım, sistemlerin birbirini sürekli kontrol etmesi yerine "bir gelişme olduğunda haber ver" mantığına dayanır. Böylece entegrasyonlar daha akıcı ve gerçek zamanlıya yakın hâle gelebilir.
Olay tabanlı bildirim nasıl çalışır?
Webhook akışında üç temel adım vardır:
- Bir sistemde bir olay gerçekleşir (örneğin yeni bir kayıt oluşturulur).
- Sistem, bu olaya ait verileri hazırlar ve önceden tanımlı hedef adrese bir istek gönderir.
- Hedef sistem bu isteği alır, içeriği doğrular ve kendi sürecini başlatır.
Gönderilen veri genellikle yapılandırılmış bir formatta (çoğunlukla JSON) iletilir ve olayın türü, zamanı ve ilgili kayıtların bilgilerini içerir. Hedef sistem bu bilgiyi işleyerek bir sonraki adımı tetikleyebilir.
Webhook ile API arasındaki fark
Webhook ve API sık karıştırılır; aslında birbirini tamamlayan iki kavramdır.
- Klasik API çağrısında veriyi isteyen taraf sizsiniz. "Yeni sipariş var mı?" sorusunu belirli aralıklarla tekrar tekrar sorarsınız. Buna sorgulama (polling) denir.
- Webhook'ta ise yön terstir. Siz sormazsınız; olay gerçekleştiğinde sistem kendiliğinden size bildirim gönderir.
Bu fark pratikte önemlidir. Sürekli sorgulama yapan bir yapı, çoğu zaman boşa istek gönderir ve gereksiz kaynak tüketir. Webhook ise yalnızca gerçekten bir olay olduğunda veri taşıdığı için ağ ve sunucu yükünü azaltmaya, gecikmeyi düşürmeye yardımcı olabilir. Buna karşılık webhook'ta hedef adresin sürekli erişilebilir olması ve gelen verinin doğrulanması gerekir.
Örnek senaryo
Bir e-ticaret sisteminde müşteri ödeme yaptığında, ödeme sağlayıcısı bu olayı doğrudan kurumun sistemine bir webhook ile iletir. Sistem bu bildirimi alır almaz siparişi "ödendi" olarak işaretler, depo ekibine hazırlık bildirimi düşer ve müşteriye otomatik bilgilendirme gönderilir. Burada hiçbir ekibin "ödeme geldi mi?" diye dakikalarca sistemi kontrol etmesine gerek kalmaz.
Aynı yaklaşım kurumsal süreçlerde de geçerlidir: bir başvurunun durumu değiştiğinde, bir cihazdan eşik dışı bir değer geldiğinde veya bir görev tamamlandığında ilgili birime otomatik bir bildirim tetiklenebilir. VexCore'un operasyonel kontrol ve kurumsal bildirim ürünü Notivex, bu tür olay tabanlı akışları kurumun süreçlerine uygun biçimde toplamaya ve yönetilebilir hâle getirmeye yardımcı olacak şekilde değerlendirilebilir.
Entegrasyonda nelere dikkat edilmeli?
Webhook'lar güçlü olduğu kadar dikkatli kurgulanması gereken yapılardır. Sağlıklı bir entegrasyon için şunlar değerlendirilebilir:
- Doğrulama: Gelen isteğin gerçekten beklenen kaynaktan geldiğini imza veya gizli anahtar ile kontrol etmek.
- Yeniden deneme: Hedef sistem geçici olarak yanıt veremezse bildirimin tekrar gönderilmesini planlamak.
- Denetim izi: Hangi olayın ne zaman geldiğini kayıt altına almak ve gerektiğinde izlenebilir kılmak.
- Güvenlik: Hedef adresi yetkisiz erişime kapalı tutmak ve yalnızca gerekli verileri taşımak.
Doğru kurgulandığında webhook, sistemler arası iletişimi daha hızlı ve daha ölçülebilir hâle getirmeye yardımcı olur. Yapay zekâ destekli kurgularda ise webhook ile gelen olaylar bir karar destek katmanını besleyebilir; bu katman insan onayı ve denetim izi ile birlikte çalışacak şekilde planlanabilir.