Skip to main content

Pengenalan

Jika endpoint webhook Anda gagal merespons atau mengembalikan status code non-2xx, CSKU AI akan secara otomatis mencoba mengirim ulang webhook.
Mekanisme retry memastikan webhook Anda terkirim meskipun terjadi masalah sementara.

Konfigurasi Retry

Proses Retry

Setelah 3 percobaan yang gagal, webhook ditandai sebagai failed_permanent dan tidak akan di-retry lagi.

Memicu Retry

Webhook di-retry ketika:
Server Anda tidak merespons dalam periode timeout.
Server Anda mengembalikan status code di luar rentang 200-299.
Koneksi gagal karena masalah jaringan.
Server Anda mengembalikan status 500 atau error serupa.

Respons Sukses

Webhook dianggap berhasil terkirim ketika server Anda mengembalikan:
Konten body respons tidak penting. Hanya status code yang dipertimbangkan.

Kegagalan Permanen

Setelah 3 percobaan yang gagal, webhook ditandai sebagai kegagalan permanen dan tidak akan di-retry. Anda dapat:
  • Memeriksa webhook yang gagal di dashboard CSKU AI Anda
  • Query tabel tbl_resend_webhook untuk percobaan yang gagal
  • Mengirim ulang webhook secara manual jika diperlukan

Idempotensi

Kritis: Endpoint webhook Anda harus idempoten. Event yang sama mungkin diterima beberapa kali.

Mengapa Idempotensi Penting

Karena retry, webhook Anda mungkin menerima event yang sama beberapa kali. Tanpa idempotensi, Anda bisa:
  • Memproses pesan yang sama dua kali
  • Mengirim notifikasi duplikat
  • Membuat record database duplikat
  • Menagih pelanggan dua kali

Mengimplementasikan Idempotensi

Menggunakan Message ID

Menggunakan Database untuk Persistensi

Membersihkan Event yang Diproses

Praktik Terbaik untuk Retry

Proses webhook dengan cepat dan respons dalam 5 detik untuk menghindari timeout.
Selalu kembalikan HTTP 200 setelah berhasil memproses webhook.
Kembalikan status 5xx untuk memicu retry jika Anda mengalami error pemrosesan sementara.
Log pengiriman webhook yang berhasil maupun gagal untuk debugging.
Gunakan exponential backoff jika Anda melakukan retry operasi dalam handler webhook Anda.

Contoh: Handler Retry Komprehensif

Monitoring Retry

Lacak Metrik Retry

Contoh Output Metrik

Jumlah duplikat yang tinggi mungkin menandakan webhook Anda memproses lambat, menyebabkan retry.

Troubleshooting Retry

Duplikat Berlebihan

Gejala: Jumlah event duplikat yang tinggi Solusi:
  • Periksa waktu pemrosesan webhook (harus < 5 detik)
  • Optimalkan query database
  • Gunakan pemrosesan async untuk operasi berat
  • Periksa resource server (CPU, memory)

Kegagalan Permanen

Gejala: Semua webhook ditandai sebagai kegagalan permanen Solusi:
  • Verifikasi URL webhook benar dan dapat diakses
  • Periksa autentikasi (secret key)
  • Uji endpoint dengan curl
  • Tinjau log server untuk error
  • Pastikan firewall mengizinkan koneksi masuk

Kegagalan Intermiten

Gejala: Beberapa webhook berhasil, yang lain gagal Solusi:
  • Implementasikan penanganan error yang tepat
  • Gunakan exponential backoff untuk retry
  • Periksa stabilitas koneksi database
  • Monitor penggunaan resource server
  • Implementasikan health check

Langkah Selanjutnya

Praktik Terbaik

Pastikan penanganan webhook yang andal

Troubleshooting

Debug masalah webhook