Back to the catalog

When demand outruns capacity: rate limits, retries, and backpressure

15 questions

When requests arrive faster than a system can handle them, it either sheds the extra load or falls over. This quiz covers the limiter algorithms (token and leaky buckets, fixed and sliding windows), where to apply a limit (per IP, per user, or in the browser with debounce and throttle), how to tell clients to slow down (429, Retry-After, backoff with jitter), and how Node.js streams push back on a fast producer so a slow consumer doesn't run out of memory.

Questions

  1. Not answered. Token bucket or leaky bucket: which one lets traffic burst?
  2. Not answered. How many requests get through in the first instant of the burst?
  3. Not answered. What does the fixed-window limiter do with these 200 requests?
  4. Not answered. What is the estimated request count for the last 60 seconds?
  5. Not answered. How does a sliding-window log differ from a sliding-window counter?
  6. Not answered. What's the trade-off between per-IP and per-user rate limiting?
  7. Not answered. 429 or 503: which one says "it's you" and which says "it's me"?
  8. Not answered. Which are valid Retry-After values?
  9. Not answered. How many milliseconds does the client wait before the retry at attempt = 4?
  10. Not answered. Which statements about adding jitter to backoff are true?
  11. Not answered. What's the two-word name for this retry problem?
  12. Not answered. What does it mean when writable.write() returns false?
  13. Not answered. What happens when the source is much faster than the slow socket?
  14. Not answered. Why is a bounded queue better than an unbounded one under overload?
  15. Not answered. Which behavior is debounce, and which is throttle?