
Bayangin Budi Lagi Patah Hati Sama Siti...
Bayangin Budi baru aja diputusin sama Siti. Siti punya website e-commerce kecil-kecilan untuk jualan kue. Karena dendam, Budi (yang kebetulan *programmer*) bikin sebuah Script Bot pakai Node.js.
Bot ini disuruh nge-klik tombol "Cek Harga Kue" di website Siti sebanyak 10.000 kali dalam waktu 1 detik! Server VPS Siti yang cuma punya RAM 1GB langsung panik, CPU-nya menyentuh 100%, database-nya timeout, dan akhirnya website Siti mati total (Error 502 Bad Gateway). Pembeli asli jadi gak bisa belanja!
Masalahnya: API Siti Terlalu 'Welcome'
Server Backend Siti sangat polos. Ia tidak membedakan mana manusia yang nge-klik pelan-pelan, dan mana mesin/bot yang nge-klik secara brutal. Selama ada request HTTP masuk, server Siti akan bekerja keras melayaninya. Kebaikan hati server inilah yang dimanfaatkan oleh Budi untuk melakukan serangan Denial of Service (DoS) / Spam.
Nah, Di Sinilah 'Rate Limiting' Masuk!
Siti yang sadar *website*-nya dibobol, langsung bangun dan memasang tameng di Backend Express.js miliknya. Tameng ini bernama Rate Limiter.
- Siti menambahkan aturan Middleware: "Satu Alamat IP (Wi-Fi) maksimal HANYA BOLEH menembak API ini 50 kali dalam waktu 1 Menit!"
- Saat Budi menjalankan Bot-nya lagi, 50 tembakan pertama berhasil diproses oleh server Siti.
- Tapi di tembakan ke-51 (yang terjadi di milidetik selanjutnya), server Siti langsung memblokirnya di gerbang depan!
- Server Siti TIDAK akan repot-repot memproses database. Ia langsung melempar Error sakti ke muka Budi: HTTP Status 429 (Too Many Requests) dengan pesan "Sabar bro, tunggu 1 menit lagi!"
Intinya: Jangan pernah merilis API Publik tanpa Rate Limiting. Tanpa rem darurat ini, satu pengunjung iseng bisa membakar habis kuota server dan tagihan AWS-mu dalam semalam!
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates