Configure Efficient Rate Limiter for Kotlin Backend

Job ID: 39492683

Budget: €250 – €750 EUR

Kotlin Spring Boot Rate Limiter with Bucket4j & Redis

Project Summary:
We are a startup company operating a Spring Boot backend application written in Kotlin. Our backend serves approximately 1000 request per second and exposes around 200 APIs. We need to integrate a configurable, efficient, and secure rate limiting system using Bucket4j and Redis.

Key Requirements:

Aspect

Details

Tech Stack

Kotlin, Spring Boot, Redis, Bucket4j, JWT

Environment

Local server

Rate Limiting Basis

- Per API per user (using JWT)

Per API per IP (for unauthenticated endpoints) |
| Config Source | Redis (loaded from configuration files) |
| Security Concern | Protect endpoints from abuse, with flexible configuration per API/user/IP|
| Collaboration | Daily Git commits to separate branches
Daily progress reports
Staging environment available |
| Testing | Unit tests + testing in staging |

Expected Deliverables:

Configurable rate limiter integrated with existing Kotlin Spring Boot APIs

Support for both user (JWT-based) and IP-based throttling

Flexible limits (requests per second/minute per user/IP per API)

Config files to be loaded into Redis on startup

Clean, well-documented code with unit tests

Daily Git commits and short Google Meet standups

Startup Note to Freelancer:

We are a startup with limited resources and every $1 and every hour saved matters. Your profile caught my attention among others. We have long-term goals and are speaking with several candidates, but if you offer a good timeline and fair price, I’d love to get started today. My manager awaits feedback.

Milestones:

Redis & Bucket4j config setup and validation (rate limiting logic for 1 API)

Integration with JWT-based user throttling

IP-based limit setup for open APIs

Full API integration (~200+ endpoints)

Documentation & final testing on staging

Please confirm you understand the scope, and let us know your best price and timeline. We encourage a short kickoff call to clarify scope and avoid back-and-forth later.