Rejecting

Throttling and 429 Too Many Requests: rate limits explained

A rate limit caps how many requests per second a service accepts. Requests above the limit are refused immediately — usually with HTTP 429 Too Many Requests.

What causes it

Most rate limits are token buckets: tokens refill at the limit rate and a burst allowance lets short spikes through. When traffic stays above the refill rate, the bucket empties and every extra request is rejected. Clients that retry immediately make it worse; clients that back off with jitter let the bucket refill.

How to recognise it

The math

Accepted ≈ min(arrival rate, refill rate) after the burst is spent

Error messages you will see

ErrorSeen in
429 Too Many RequestsUsers, Router, Server, Database, Cache, Queue and 212 more
ProvisionedThroughputExceededExceptionAmazon DynamoDB
503 SlowDown: Please reduce your request rateAmazon S3
429 Request rate is large (RU/s exceeded)Azure Cosmos DB

How to fix it

Reproduce it in the simulator

Open the simulator, build a small architecture and use Fault injection in the inspector, or push traffic past a component’s capacity.

Open the simulator

Learn more

Part of the guide Load balancing and capacity planning.

Related failure modes