A full-stack project that demonstrates four classic rate-limiting algorithms implemented in Spring Boot (backend) and visualized through a React (Vite + TypeScript) frontend.
This system simulates API traffic control to ensure fair usage and prevent abuse under high load conditions.
The project allows users to test and compare the following rate-limiting strategies:
- Token Bucket
- Leaky Bucket
- Fixed Window Counter
- Sliding Window Log
Each API call responds whether the request is allowed or blocked based on the selected algorithm.
You can learn more about these algorithms here : Rate Limiting Algorithms
- Java 17
- Spring Boot 3.x
- Maven
- Factory + Strategy Design Patterns
- CORS Configuration
- Dockerized
- React 18 + Vite
- TypeScript
- Axios (for REST API calls)
- TailwindCSS (optional for styling)
- Dockerized
- Docker + Docker Compose
- Bridge Networking for frontend-backend communication
git clone https://github.com/Prezzy06/rate-limiter-project.git
cd rate-limiter-projectdocker-compose up --buildThis will:
-
Build the backend (Spring Boot JAR)
-
Build the frontend (Vite dev server)
-
Run both inside connected containers
-
Frontend → http://localhost:5173
-
Backend → http://localhost:8080
cd backend
mvn spring-boot:runcd frontend
npm install
npm run dev-
Four rate-limiting strategies implemented from scratch
-
Clean RESTful API structure
-
Error handling with proper HTTP status codes (200 / 429)
-
CORS enabled for frontend integration
-
Dockerized full-stack environment
-
Ready for deployment or scaling