Rate Limiting: Melindungi API dari Penyalahgunaan dan Kecelakaan
API tanpa pembatasan laju adalah undangan masalah. Bisa jadi satu klien yang bug mengirim ribuan permintaan per detik, atau pelaku jahat mencoba peretasan. Rate limiting adalah rem dasar.
Pilih algoritma
Token bucket fleksibel: izinkan ledak pendek selama rata-rata terkendali. Fixed window sederhana tapi tidak rata di batas jendela. Sliding window lebih halus tapi lebih kompleks.
Adil dan terlihat
Batas harus adil antar klien — satu pelanggan tidak boleh menyedot kuota semua. Sertakan header sisa kuota dan kapan reset, agar klien bisa bersikap sopan, bukan menebak.
Respons terhadap batas
Saat terlampaui, kembalikan 429 dengan header Retry-After. Jangan diam atau mengembalikan 200 kosong. Klien yang baik akan pelan; klien yang bug akan terlihat di metrik.
Bukan hanya keamanan
Rate limiting bukan sekadar menangkal serangan. Ia menjaga keadilan sumber daya dan mencegah satu bug klien menjatuhkan layanan untuk semua.