Webhook, bir sistemde belirli olay gerçekleştiğinde başka bir sisteme otomatik HTTP bildirimi gönderilmesini sağlar. Örneğin ödeme tamamlandığında veya yeni sipariş oluştuğunda karşı sistem bilgilendirilebilir.
Bu model, sürekli API sorgusu yaparak değişiklik arayan polling yaklaşımına göre daha hızlı ve kaynak açısından daha verimli olabilir.
Webhook Nasıl Çalışır?
Alıcı sistem bir callback URL sağlar. Kaynak sistem olay oluştuğunda bu URL’ye event bilgisi gönderir.
API Polling ile Farkı
Polling’de istemci belirli aralıklarla “değişiklik var mı?” diye sorar. Webhook’ta değişiklik olduğunda kaynak sistem istemciye haber verir.
Webhook Payload
Payload içinde event type, resource ID, timestamp ve ilgili veri bulunabilir. Çok büyük payload yerine resource ID gönderilip detayın API’den çekilmesi de yaygın yaklaşımdır.
Signature Doğrulama
Webhook endpoint’i internete açık olduğu için request’in gerçekten beklenen sağlayıcıdan geldiği doğrulanmalıdır. HMAC signature yaygın yöntemlerden biridir.
Retry Mekanizması
Alıcı servis geçici olarak cevap veremezse kaynak sistem webhook’u tekrar gönderebilir. Retry sayısı ve backoff stratejisi dokümante edilmelidir.
Duplicate Event Problemi
Aynı webhook birden fazla kez gelebilir. Event ID veya business key kullanılarak duplicate işleme engellenmelidir.
Queue Kullanımı
Webhook endpoint’i ağır işlemleri request sırasında yapmak yerine payload’ı doğrulayıp queue’ya bırakabilir. Bu yöntem hızlı acknowledgement sağlar.
Webhook Monitoring
- Başarısız event sayısı
- Retry sayısı
- Processing latency
- Duplicate event
- Signature failure
- Queue backlog
Production Ortamında Entegrasyon Kontrol Listesi
Webhook Nedir? API ile Webhook Arasındaki Fark konusu production ortamına taşınırken Webhook Nasıl Çalışır?, API Polling ile Farkı ve Webhook Payload yalnız geliştirme aşamasının değil işletim modelinin de parçası olmalıdır. Her entegrasyon için kaynak sistem, hedef sistem, data owner, authentication yöntemi, veri mapping tablosu ve hata sorumlusu açıkça tanımlanmalıdır. Bir endpoint teknik olarak çalışsa bile yanlış ürün, müşteri veya sipariş kaydını güncelliyorsa entegrasyon başarılı kabul edilmemelidir.
Üretim ortamında timeout, rate limit, geçici network kesintisi, duplicate request ve beklenmeyen response gibi senaryolar normal çalışma koşullarının parçası kabul edilmelidir. Retry yalnız geçici hatalara uygulanmalı, tekrar çalıştırılması finansal veya operasyonel yan etki yaratabilecek işlemlerde idempotency kullanılmalıdır. Uzun süren işler queue’ya taşındığında kullanıcı request’i dış servis performansına doğrudan bağımlı olmaktan çıkar; başarısız işler ise kontrollü biçimde yeniden işlenebilir.
Monitoring katmanında yalnız HTTP status code değil business sonucu da izlenmelidir. Örneğin API 200 response üretirken hiçbir sipariş ERP’ye işlenmemiş olabilir. Bu nedenle request count, error rate, P95 latency, retry sayısı, queue backlog ve son başarılı senkronizasyon zamanı gibi teknik metrikler; aktarılan sipariş, stok veya müşteri sayısı gibi iş metrikleriyle birlikte dashboard’a taşınmalıdır. Correlation ID ve structured logging kullanılması incident sırasında tek işlemin farklı servislerdeki izini takip etmeyi kolaylaştırır.
- Authentication ve secret yönetimi
- Veri mapping ve schema validation
- Timeout ve retry politikası
- Idempotency ve duplicate kontrolü
- Rate limit yönetimi
- Structured log ve correlation ID
- Business reconciliation
- Alert ve dashboard
API Sözleşmesi, Failure Mode ve Veri Tutarlılığı
Webhook Nedir? API ile Webhook Arasındaki Fark konusu production ortamında uygulanırken yalnız başarılı request-response akışı tasarlanmamalıdır. Özellikle Webhook Nasıl Çalışır?, API Polling ile Farkı ve Webhook Payload için açık bir API sözleşmesi oluşturulmalıdır. Bu sözleşmede zorunlu alanlar, veri tipleri, enum değerleri, authentication yöntemi, timeout sınırı, hata kodları ve breaking change yaklaşımı tanımlanmalıdır. İstemci sistemin hangi response karşısında retry yapacağı, hangi durumda işlemi durduracağı ve hangi hatanın insan müdahalesine taşınacağı önceden belirlenirse entegrasyon davranışı daha öngörülebilir hale gelir.
Failure-mode tasarımında dış servisin tamamen erişilemez olması dışında yavaş response, kısmi veri, duplicate event, yanlış sıra ile gelen event, rate limit ve geçici authentication problemi de hesaba katılmalıdır. Retry uygulanacak işlemlerde exponential backoff ve uygun olduğunda jitter kullanılabilir. Sipariş, ödeme, stok veya müşteri kaydı gibi yan etkili işlemlerde idempotency veya benzersiz business key bulunması aynı isteğin tekrar işlenmesi sonucunda duplicate kayıt oluşma riskini azaltır.
Veri tutarlılığı açısından API response’unun başarılı olması tek başına yeterli değildir. Kaynak ve hedef sistem arasında periyodik reconciliation yapılması; kayıt sayısı, toplam tutar, son senkronizasyon zamanı veya business ID üzerinden uyuşmazlık kontrolü gerçekleştirilmesi gerekir. Structured log, correlation ID ve merkezi error tracking kullanıldığında bir işlemin hangi serviste başarısız olduğu daha hızlı bulunabilir. Bu kontroller entegrasyonu çalışan bir bağlantıdan çıkarıp denetlenebilir ve sürdürülebilir bir operasyon bileşenine dönüştürür.
- Request ve response schema doğrulaması
- Timeout ve retry matrisi
- Idempotency veya benzersiz business key
- Rate limit ve kapasite yönetimi
- Correlation ID ve structured logging
- Kaynak-hedef reconciliation kontrolü
- Breaking change ve versioning politikası
B10 Digital Agency Entegrasyon Yaklaşımı
B10 Digital Agency entegrasyon projelerini yalnız API bağlantısı kurmak olarak değil; veri sözleşmesi, güvenlik, retry, queue, observability, reconciliation ve operasyon süreçlerinin birlikte tasarlandığı sistem mimarisi olarak ele alır.
Sıkça Sorulan Sorular
Webhook gerçek zamanlı mıdır?
Genellikle olaya çok yakın zamanda iletilir fakat network ve retry nedeniyle mutlak gerçek zaman garantisi olmayabilir.
Webhook için API gerekir mi?
Her zaman değil, ancak çoğu mimaride event sonrası detay veriyi almak için API birlikte kullanılır.
Webhook güvenli nasıl yapılır?
TLS, signature doğrulama, timestamp kontrolü ve uygun authorization yöntemleri kullanılmalıdır.
Webhook iki kez gelebilir mi?
Evet. Bu nedenle tüketici sistem idempotent tasarlanmalıdır.
İlgili İçerikler
- API-First Geliştirme: Backend’i Ayrıştırmak, Uygulamayı Çoklu Kanal Yapmak
- SEO + İçerik Yapısı için Headless CMS + GraphQL + Schema Best Practices
- Gerçek Zamanlı Web: WebSockets, Server-Sent Events ve Stream API
Sistemlerinizi Güvenilir Veri Akışıyla Birleştirin
ERP, CRM, pazaryeri, özel yazılım ve üçüncü taraf servislerin entegrasyon mimarisini planlamak için B10 Digital Agency API & Sistem Entegrasyonları hizmetini inceleyebilirsiniz.