Rate Limiting: Leaky Bucket vs Leaky Token Bucket

Both are used to control flow

Leaky Bucket

  • Leaky bucket uses a queue to absorb a burst of requests & a constant set of requests are dequeued.
  • If request overflows the queue capacity, the data is lost.

Leaky Token Bucket

  • Think of N semaphores as tokens.
  • Leaky Token Bucket algorithm accepts a request till a semaphore is available.
  • If no token is available, the sender is blocked. So no data loss as such.