Distributed Rate Limiter — Live

A Redis token-bucket limiter in NestJS. Drive traffic with the slider and watch the bucket drain and requests flip to 429 the instant you cross the sustained rate.

disconnected

New to rate limiting? Start here

Rate limiting caps how many requests a server will handle so a flood of traffic can't overwhelm it. Requests over the limit are politely turned away instead of crashing the system.

🪣 The bucket analogy

Picture a bucket that holds 10 tokens and refills 5 per second. Every request spends one token. Send requests slowly and the bucket keeps up — send a flood and it empties, so extra requests get rejected with HTTP 429 (“Too Many Requests”) until it refills.

Pick a scenario below (or press Start) to send requests to the server and watch what happens.
Tokens left
10
requests you can still make now
Served (200)
0
requests allowed
Throttled (429)
0
requests rejected
Last status
—
most recent response

Traffic

Try a scenario — or set your own rate with the slider.

8 req/s

The server allows 5/s. Below that, everything passes; above it, the bucket drains and extra requests turn red.

Token bucket

Each request spends 1 token; refills +5/s. Empty → requests rejected.

10
/ 10 tokens
+5/s refill

Request stream

Each square is one request — green allowed (200), red blocked (429).

Start traffic to see requests…
200 allowed 429 throttled

Throughput (last 30s)

Requests per second — green served, red throttled.

Waiting for traffic…

served/s throttled/speak 1/s