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.