Digital Transformation
Webhook vs Polling
TL;DR: Webhook dan polling adalah dua cara aplikasi mendapat update dari sistem lain. Polling rutin bertanya "ada yang baru?" dalam interval tetap, sementara webhook menunggu sistem lain yang memberi tahu saat ada kejadian. Untuk kebutuhan real-time dengan beban server kecil, webhook umumnya lebih efisien.
Apa itu Webhook vs Polling?
Bayangkan Anda menunggu paket. Polling seperti menelepon kurir tiap 10 menit untuk bertanya apakah paket sudah dekat. Webhook seperti memberi nomor Anda agar kurir yang menelepon saat paket tiba. Keduanya menyelesaikan masalah yang sama, mendapat informasi update, tapi dengan biaya dan ketepatan waktu yang berbeda.
Polling adalah aplikasi yang memanggil sebuah API secara berkala, misalnya tiap 30 detik, untuk mengecek perubahan. Webhook membalik arahnya: sistem sumber mengirim HTTP request ke URL Anda begitu sebuah kejadian terjadi (pembayaran masuk, pesanan dibuat).
Perbandingan Singkat
| Aspek | Polling | Webhook |
|---|---|---|
| Arah | Aplikasi menarik data | Sistem mendorong data |
| Latensi | Tergantung interval | Mendekati real-time |
| Beban server | Tinggi (banyak request kosong) | Rendah (hanya saat ada event) |
| Kompleksitas | Sederhana | Perlu endpoint publik + verifikasi |
Webhook idealnya dibuat idempoten supaya pengiriman ganda tidak menyebabkan data dobel.
Kenapa Penting?
Untuk bisnis Indonesia yang mengintegrasikan payment gateway, CRM, atau notifikasi WhatsApp, pilihan ini menentukan kecepatan dan biaya. Dalam beberapa integrasi yang saya tangani, mengganti polling tiap 15 detik dengan webhook memangkas ribuan request kosong per hari dan membuat notifikasi terasa instan bagi pelanggan. Polling tetap masuk akal saat sistem sumber tidak menyediakan webhook, atau saat Anda tidak bisa mengekspos endpoint publik. Detail teknis pola ini dijelaskan baik di dokumentasi webhook Stripe.
Pertanyaan Umum
Apakah webhook selalu lebih baik dari polling?
Tidak. Webhook unggul untuk real-time dan efisiensi, tapi butuh endpoint publik yang aman dan penanganan retry. Jika sistem sumber tidak mendukung webhook, polling adalah pilihan yang wajar.
Bagaimana mengamankan webhook?
Verifikasi signature dari pengirim, gunakan HTTPS, dan buat handler idempoten agar event yang terkirim dua kali tidak diproses ganda.