{10x}debuggable
All challenges
intermediate4 bugs2 enhancements30 minutes – 4 hours per task

Rate Limiter Service

Token bucket, sliding window and leaky bucket, in-memory and Redis-backed — fifteen ways the production version of each quietly breaks.

GoRedisDockerPrometheus

Nobody has started this yet — be first.

Backlog

6 tickets
95 XP

About this project

What you're working in

A production-shaped rate limiter, as a Go library and as a runnable HTTP service: token bucket, sliding window counter, and leaky bucket, each with an in-memory and a Redis-backed implementation behind one clean Limiter interface. The three algorithms trade off differently (burst tolerance vs. predictable quotas vs. hard shaping), and the two backends trade off differently too (in-memory is free but per-replica, Redis is shared but adds a network hop) — swapping either one never touches a call site.

Eight tickets are bugs deliberately injected into an otherwise-working codebase (an off-by-one, a sign flip, a lock released too early, a Redis/Lua boolean gotcha that panics on every denial); seven are enhancements that do not exist yet, each with a compile-only stub so the codebase and the verification tests build before the real implementation is written. Every ticket has a dedicated Go test that goes green when the fix is correct.