Mekanisme di mana satu sistem otomatis 'ngetuk pintu' sistem lain via HTTP request saat ada event yang terjadi. Kayak notifikasi push, tapi antar sistem, bukan ke smartphone kamu.
Webhook adalah cara satu sistem memberi tahu sistem lain bahwa ada sesuatu yang terjadi, secara otomatis lewat HTTP request. Waktu event terjadi di sistem pengirim, dia langsung kirim data ke URL yang udah kamu tentukan sebelumnya tanpa kamu perlu minta duluan.
Analogi paling gampang: kamu pesan makanan online, terus minta notifikasi SMS kalau pesanan udah di-pick up kurir. Kamu nggak perlu terus-terusan nanya status ke aplikasi, karena sistem mereka yang bakal kabarin kamu otomatis. Nah, webhook itu kayak mekanisme "kabarin otomatis" tapi antar sistem atau aplikasi, bukan ke HP kamu.
Cara lain untuk tahu kalau ada event adalah polling: sistem kamu terus-terusan nanya ke sistem lain, "ada yang baru gak? ada yang baru gak?" setiap beberapa detik. Ini boros resource dan lambat.
| Aspek | Polling | Webhook |
|---|---|---|
| Cara kerja | Sistem kamu yang terus nanya | Sistem lain yang kasih tahu kamu |
| Latency | Tergantung interval polling | Hampir real-time |
| Resource | Boros, banyak request sia-sia | Efisien, request cuma saat ada event |
| Kompleksitas | Sederhana | Perlu URL endpoint yang bisa di-hit |
| Kontrol timing | Kamu yang pegang | Sistem pengirim yang tentukan |
Alurnya simpel banget:
Xendit (payment gateway Indonesia) pakai webhook untuk kabarin backend kamu kalau pembayaran berhasil. Kamu nggak perlu terus-terusan cek status invoice ke Xendit, karena Xendit yang bakal kirim request ke endpoint kamu waktu ada update status pembayaran.
GitHub juga pakai webhook untuk trigger CI/CD pipeline waktu ada push ke repository. Setiap kali developer push code, GitHub kirim webhook ke Jenkins atau GitHub Actions secara otomatis.
Karena webhook adalah HTTP request yang datang dari luar, kamu perlu validasi bahwa request itu beneran dari sumber yang legitimate dan bukan penyerang yang nyamar. Biasanya dilakukan lewat signature verification menggunakan HMAC atau secret token yang dikirim di header request.
Satu hal lagi: karena pengiriman webhook bisa gagal (server kamu lagi down, timeout, dll), sistem yang baik punya retry mechanism. Ini berarti endpoint kamu harus idempoten supaya event yang dikirim ulang nggak bikin duplikat data.
Udah paham Webhook? Lanjut latihan SQL dan Excel yuk!
Latihan interaktif, langsung di browser.