Project
Distributed Rate Limiter
Reusable, annotation-driven rate limiting library packaged as Spring Boot Starter
A reusable Spring Boot Starter for distributed API rate limiting, featuring annotation-based configuration and support for Fixed Window, Sliding Window, Token Bucket, and Leaky Bucket algorithms. It uses Redis and atomic Lua scripts to provide scalable, race-condition-free rate limiting across distributed applications.
Key highlights
- Provides distributed API rate limiting as a reusable Spring Boot Starter, enabling plug-and-play integration through a single @RateLimit annotation with zero manual configuration
- Supports Fixed Window, Sliding Window, Token Bucket, and Leaky Bucket algorithms using the Strategy Pattern, making new rate-limiting algorithms easy to add without modifying existing code
- Ensures race-condition-free enforcement across multiple application instances using Redis-backed distributed state, atomic Lua scripts, sorted sets, and TTL-based counters
- Implements an AOP-driven request interception pipeline with Spring Boot auto-configuration, delivering seamless annotation-based rate limiting while adhering to SOLID principles
- Published as a reusable Maven artifact with comprehensive unit and integration tests, making it production-ready for scalable microservices and distributed systems
Tech stack
JavaSpring Boot StartersRedisDocker