Hermes Wiki

LeakyBucket

Requests fill a queue (the bucket) and are processed (leak out) at a fixed, constant rate — smooths bursty input into steady output, unlike token bucket which allows bursts through.

Why we need this / what value this brings

Enforces a strictly smooth, constant output rate — useful specifically when the thing being protected downstream can't tolerate bursts at all.

When to use this

Protecting a downstream dependency (e.g. a third-party API with a strict per-second limit) where smoothing matters more than allowing the caller any burst.

How to use or implement this

Queue incoming requests and process them from the queue at a fixed rate; reject or queue-with-timeout when the queue is full.

Research questions

  • Where would a smoothed, constant output rate matter more than allowing bursts — e.g. protecting a downstream third-party API with a strict rate limit of its own?

Empty folder — drop notes, links, and findings here as you research.

Hermes Wiki