Computer Science

Membangun Distributed Rate Limiter dengan Go, Redis, Lua, dan Token Bucket

Bangun rate limiter terdistribusi yang atomic, tahan beban, dan siap dipakai untuk melindungi API dengan Go, Redis, Lua, dan Token Bucket.

Diperbarui 27 Agu 2026id6 bagian · 24 pelajaran4 jam 30 menit
Belum ada ulasan
Level Intermediate
Kategori Computer Science
Perkiraan Durasi 4 jam 30 menit

Skill yang dibangun

Apa yang akan Anda pelajari

Menjelaskan masalah rate limiting pada aplikasi dengan banyak instance dan memilih Token Bucket untuk kebutuhan API.

Mengimplementasikan Token Bucket dengan perhitungan refill token, capacity, dan retry delay yang benar.

Menghubungkan service Go ke Redis dan menyimpan state limiter dengan struktur data yang efisien.

Menulis serta menjalankan Lua script Redis agar pengecekan dan pengurangan token berlangsung atomic.

Membangun HTTP middleware Go yang mengembalikan status 429 dan header rate limit yang relevan.

Menguji perilaku limiter pada concurrent request serta mengenali bug seperti race condition, key collision, dan konfigurasi TTL yang keliru.

Siapa Target Audiens Kursus Ini

Developer backend tingkat intermediate, mahasiswa ilmu komputer, engineer yang ingin memahami sistem terdistribusi, serta programmer Go yang ingin membangun komponen proteksi API dan layanan jaringan yang tahan beban.

Project outcomes

Apa yang Akan Anda Buat

Kamu akan membangun distributed rate limiter berbasis Go, Redis, Lua, dan algoritma Token Bucket. Komponen ini dipasang sebagai HTTP middleware untuk membatasi request berdasarkan API key atau client ID, bekerja konsisten di beberapa instance service, mengembalikan response 429 saat limit habis, serta menyediakan informasi retry kepada client. Proyek dilengkapi konfigurasi capacity dan refill rate, Redis key yang terstruktur, Lua script atomic, automated test dasar, dan simulasi concurrent request.

Konten Kursus

Fondasi Rate Limiting dan Token Bucket

4 pelajaran | 140 menit
Kenapa API Membutuhkan Rate Limiter
25 menit
Memahami Algoritma Token Bucket
30 menit
Implementasi Token Bucket Lokal dengan Go
45 menit
Debugging dan Pengujian Perilaku Token Bucket
40 menit

Go HTTP Server dan Integrasi Redis

4 pelajaran | 150 menit
Membangun HTTP Server Go yang Siap Dibatasi
35 menit
Koneksi Redis dengan go-redis
40 menit
Merancang Redis Key untuk Rate Limiter
30 menit
Rate Limiter Redis Sederhana dengan Get dan Set
45 menit

Atomic Operation dengan Redis Lua

4 pelajaran | 180 menit
Race Condition pada Distributed Rate Limiter
35 menit
Dasar Redis Lua Script dan Atomicity
40 menit
Menulis Script Token Bucket di Redis
55 menit
Menjalankan Lua Script dari Go dengan Eval
50 menit

Middleware, Response Contract, dan Resilience

4 pelajaran | 165 menit
Membuat Rate Limit Middleware di net/http
45 menit
HTTP Status dan Header Rate Limit
35 menit
Client Identity, Trust Proxy, dan Abuse Case
35 menit
Redis Failure, Timeout, dan Observability
50 menit

Testing, Tuning, dan Production Readiness

4 pelajaran | 185 menit
Unit Test untuk Perhitungan Token Bucket
45 menit
Integration Test Go dan Redis
45 menit
Concurrency Test dan Load Test Dasar
50 menit
Tuning Kapasitas, Presisi Waktu, dan Deployment
45 menit

Proyek Akhir: Membangun API Gateway Rate Limiter

4 pelajaran | 315 menit
Perancangan dan Setup Proyek
60 menit
Implementasi Engine Token Bucket Redis Lua
90 menit
Integrasi Middleware dan Penyempurnaan API
75 menit
Pengujian, Load Test, dan Presentasi Hasil
90 menit

Deskripsi Kursus

Rate limiter kelihatan sederhana sampai aplikasi kamu berjalan di beberapa instance. Kalau state limit cuma disimpan di memory satu server, request bisa lolos lewat instance lain. Di sini kamu akan membangun solusi yang state-nya tersentralisasi di Redis, sehingga semua instance aplikasi memakai aturan limit yang konsisten.

Kita mulai dari fondasi: kenapa rate limiting dibutuhkan, cara kerja algoritma Token Bucket, dan bagaimana menghitung token secara aman. Setelah itu, kamu akan menghubungkan Go dengan Redis, menulis Lua script untuk menjaga operasi tetap atomic, lalu memasangnya sebagai middleware HTTP yang bisa dipakai ulang.

Kamu akan mengikuti worked example yang runnable, membedah alur eksekusi dan perubahan state di Redis, lalu menguji concurrent request untuk menemukan race condition. Ada guided practice supaya kamu bisa mengetik kode bertahap, dan independent practice untuk menambahkan fitur seperti response header, konfigurasi per client, serta observability. Fokusnya bukan cuma kode yang jalan, tapi juga cara berpikir yang dipakai di code review dan sistem production.

Rating & Ulasan

0 ratings