Digital Transformation
Webhook Retry Strategy
TL;DR: Webhook retry strategy adalah aturan main saat pengiriman webhook gagal, misalnya server penerima sedang down atau timeout. Pola yang umum dipakai: ulangi pengiriman beberapa kali dengan jeda yang makin lama (backoff), batasi jumlah percobaan, dan pastikan penerima aman dari event ganda lewat idempotency key.
Apa itu Webhook Retry Strategy?
Webhook retry strategy adalah kumpulan aturan yang menentukan bagaimana sistem pengirim merespons ketika sebuah webhook gagal sampai ke tujuan. Analoginya seperti kurir yang mengantar paket: kalau rumah tujuan kosong, kurir tidak langsung menyerah, tapi mencoba lagi nanti dengan jeda tertentu sampai batas percobaan habis.
Tanpa strategi retry, satu gangguan singkat di sisi penerima bisa membuat event penting hilang permanen. Misalnya notifikasi pembayaran berhasil yang tidak pernah sampai ke aplikasi, padahal uang sudah masuk.
Komponen Utama
| Komponen | Fungsi |
|---|---|
| Retry count | Batas maksimal percobaan, umumnya 3-5 kali sebelum dianggap gagal permanen |
| Backoff | Jeda antar percobaan yang makin lama, lihat exponential backoff |
| Idempotency | Penerima aman dari event ganda lewat idempotency key |
| Dead letter | Event yang gagal total dialihkan ke dead letter queue untuk diproses manual |
Kenapa Penting?
Untuk bisnis Indonesia yang mengandalkan integrasi pembayaran (QRIS, payment gateway) atau notifikasi WhatsApp, kehilangan satu event bisa berarti pesanan tidak terproses. Strategi retry yang baik menjaga data tetap konsisten antara dua sistem, bahkan saat koneksi tidak stabil. Verifikasi keaslian event juga penting, jadi pasangkan dengan webhook signature.
Pertanyaan Umum
Berapa kali idealnya retry dilakukan?
Praktik umum di industri adalah 3-5 kali dengan jeda yang makin panjang. Lebih dari itu jarang membantu dan justru membebani sistem penerima yang mungkin sedang bermasalah.
Apa beda retry biasa dengan exponential backoff?
Retry biasa memakai jeda tetap, misalnya tiap 10 detik. Exponential backoff melipatgandakan jeda tiap percobaan (10 detik, 20 detik, 40 detik) agar penerima punya waktu pulih.
Istilah Terkait