This project is a simple and extensible Rate Limiting microservice implemented with Spring Boot and Redis using the Token Bucket algorithm.
- ✅ Token Bucket algorithm implementation
- ✅ Redis-based in-memory bucket store
- ✅ Supports per-user rate limiting via
X-User-ID
header - ✅ JSON API with clear HTTP responses
- ✅ Easy to extend with other algorithms (sliding window, leaky bucket)
- ✅ Clean and testable code structure
- Java 21
- Spring Boot 3.5.x
- Redis (local or Docker)
- Maven
- JUnit & Mockito (for testing)