Rate limiting

Rate limiting is a [system design] strategy that helps protect services from being overwhelmed by too many requests from a single user or client.

Rate limiting algorithms

  • Token bucket: Allows bursts of traffic within overall rate limit.

  • Leaky bucket: Smooths traffic flow at constant rate.

  • Fixed window counter: Limits requests in fixed time intervals.

  • Sliding window log: Tracks requests within rolling time window.

  • Sliding window counter: Smooths rate between adjacent fixed windows.