Documentation Index
Fetch the complete documentation index at: https://docs.csku.ai/llms.txt
Use this file to discover all available pages before exploring further.
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
| Parameter | Nilai |
|---|---|
| Maksimum Retry | 3 kali |
| Jeda Retry | 30 detik antar percobaan |
| Metode Retry | Exponential backoff |
Proses Retry
Setelah 3 percobaan yang gagal, webhook ditandai sebagai
failed_permanent dan tidak akan di-retry lagi.Memicu Retry
Webhook di-retry ketika:Tidak Ada Respons
Tidak Ada Respons
Server Anda tidak merespons dalam periode timeout.
Status Non-2xx
Status Non-2xx
Server Anda mengembalikan status code di luar rentang 200-299.
Error Jaringan
Error Jaringan
Koneksi gagal karena masalah jaringan.
Error Server
Error Server
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_webhookuntuk 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
Respons Cepat
Respons Cepat
Proses webhook dengan cepat dan respons dalam 5 detik untuk menghindari timeout.
Kembalikan 200 pada Sukses
Kembalikan 200 pada Sukses
Selalu kembalikan HTTP 200 setelah berhasil memproses webhook.
Kembalikan 500 pada Error Pemrosesan
Kembalikan 500 pada Error Pemrosesan
Kembalikan status 5xx untuk memicu retry jika Anda mengalami error pemrosesan sementara.
Log Semua Percobaan
Log Semua Percobaan
Log pengiriman webhook yang berhasil maupun gagal untuk debugging.
Implementasikan Backoff
Implementasikan Backoff
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