Membangun Rule Engine yang Dapat Diaudit dengan Python
Bangun rule engine Python yang memisahkan aturan bisnis, mencatat keputusan, dan dapat diuji serta diaudit secara sistematis.
Bangun rate limiter terdistribusi yang atomic, tahan beban, dan siap dipakai untuk melindungi API dengan Go, Redis, Lua, dan Token Bucket.
Skill yang dibangun
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.
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
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.
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.
Bangun rule engine Python yang memisahkan aturan bisnis, mencatat keputusan, dan dapat diuji serta diaudit secara sistematis.
Bangun aplikasi flashcard berbasis Python dengan penyimpanan data dan algoritma pengulangan berjarak untuk belajar lebih teratur.
Bangun pipeline yang menandatangani, menghasilkan, dan memverifikasi provenance artefak dengan Sigstore dan in-toto.
Bangun simulator CPU dengan Python untuk membandingkan FCFS, SJF, dan Round Robin melalui data, perhitungan, dan validasi hasil.