Polling vs Webhook
Eskiden bir sistemden veri istemek için polling yapardınız: "Yeni veri var mı?" sorusunu her 5 dakikada bir sorardınız. Verimsiz.
Webhook tersine çalışır: “Yeni veri olunca beni ara” dersiniz. Bir URL kaydeder, sistem bir olay olduğunda o URL'e POST isteği gönderir.
Polling = telefon arama; webhook = SMS gelmesi. İkincisi çok daha verimli.
Tipik webhook olayları
E-ticaret: Sipariş alındı, ödeme tamamlandı, kargo verildi.
Onremo: system.purchased, user.invited, payment.completed.
Slack: Mesaj geldi, kanal oluşturuldu.
GitHub: Push yapıldı, pull request açıldı.
Webhook tasarım kuralları
1. Idempotent ol. Aynı webhook'u iki kez almak sorun yaratmamalı (network sorunları olabilir).
2. Hızlı yanıt ver. 200 OK'ı 5 saniyede dön. Asıl işi arka planda yap.
3. Retry mantığı düşün. Onremo gibi sistemler 3 kez tekrar dener (1, 5, 60 dakika sonra).
4. İmza doğrulama. Gelen webhook'un gerçekten o sistemden geldiğini imza ile doğrula.