Bird
Raised Fist0
HLDsystem_design~20 mins

Rate limiting algorithms (token bucket, leaky bucket) in HLD - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Rate Limiting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Token Bucket Algorithm Behavior

Consider a token bucket rate limiter with a bucket capacity of 5 tokens and a refill rate of 1 token per second. Initially, the bucket is full. If 7 requests arrive instantly at time 0, how many requests will be allowed immediately?

A2 requests allowed immediately, 5 requests rejected
B7 requests allowed immediately
C0 requests allowed immediately, all queued
D5 requests allowed immediately, 2 requests rejected
Attempts:
2 left
💡 Hint

Think about how many tokens are available at the start and how many requests consume tokens.

❓ Architecture
intermediate
2:00remaining
Choosing Between Token Bucket and Leaky Bucket

You are designing an API gateway that needs to limit request bursts but also smooth out traffic spikes over time. Which rate limiting algorithm is more suitable?

AToken Bucket, because it allows bursts up to bucket capacity
BLeaky Bucket, because it allows bursts up to bucket capacity
CLeaky Bucket, because it allows unlimited bursts
DToken Bucket, because it enforces a fixed output rate regardless of bursts
Attempts:
2 left
💡 Hint

Consider which algorithm allows bursts and which smooths traffic strictly.

❓ scaling
advanced
2:00remaining
Scaling Rate Limiter for Distributed Systems

You need to implement a distributed rate limiter using the token bucket algorithm across multiple servers. What is the main challenge and best approach?

AChallenge: High memory usage; Approach: Store tokens locally on each server without synchronization
BChallenge: Synchronizing token counts; Approach: Use a centralized token store with atomic operations
CChallenge: Network latency; Approach: Use local caches and ignore synchronization
DChallenge: Token overflow; Approach: Increase bucket size infinitely
Attempts:
2 left
💡 Hint

Think about consistency of token counts across servers.

❓ tradeoff
advanced
2:00remaining
Tradeoffs Between Token Bucket and Leaky Bucket

Which statement correctly describes a tradeoff between token bucket and leaky bucket algorithms?

AToken bucket allows bursty traffic but can cause uneven output; leaky bucket smooths output but rejects bursts
BLeaky bucket allows bursty traffic but can cause uneven output; token bucket smooths output but rejects bursts
CBoth algorithms allow unlimited bursts but differ in refill rates
DToken bucket rejects all bursts; leaky bucket allows bursts up to bucket size
Attempts:
2 left
💡 Hint

Recall how each algorithm handles bursts and output rate.

❓ estimation
expert
2:00remaining
Estimating Capacity for Rate Limiter with Token Bucket

You have a token bucket rate limiter with a bucket size of 100 tokens and a refill rate of 10 tokens per second. What is the maximum number of requests that can be served in a 15-second window assuming the bucket starts full and requests arrive uniformly?

A100 requests
B150 requests
C250 requests
D50 requests
Attempts:
2 left
💡 Hint

Calculate total tokens available: initial tokens plus tokens refilled over time.

Practice

(1/5)
1. Which rate limiting algorithm allows short bursts of traffic by accumulating tokens over time?
easy
A. Token Bucket
B. Leaky Bucket
C. Fixed Window Counter
D. Sliding Log

Solution

  1. Step 1: Understand token bucket behavior

    The token bucket algorithm accumulates tokens at a fixed rate, allowing bursts when tokens are available.
  2. Step 2: Compare with leaky bucket

    The leaky bucket processes requests at a steady rate, smoothing bursts rather than allowing them.
  3. Final Answer:

    Token Bucket -> Option A
  4. Quick Check:

    Token Bucket = allows bursts [OK]
Hint: Token bucket = bursts allowed, leaky bucket = steady flow [OK]
Common Mistakes:
  • Confusing leaky bucket with token bucket
  • Thinking fixed window allows bursts
  • Mixing sliding log with token bucket
2. Which of the following is the correct description of the leaky bucket algorithm?
easy
A. Requests are counted in fixed time windows
B. Tokens accumulate and requests consume tokens
C. Requests are processed at a fixed rate regardless of burst
D. Requests are logged with timestamps for sliding window

Solution

  1. Step 1: Recall leaky bucket mechanism

    Leaky bucket processes requests at a constant rate, smoothing out bursts by queuing excess requests.
  2. Step 2: Eliminate other options

    Tokens accumulate and requests consume tokens describes token bucket, C and D describe other rate limiting methods.
  3. Final Answer:

    Requests are processed at a fixed rate regardless of burst -> Option C
  4. Quick Check:

    Leaky bucket = fixed rate processing [OK]
Hint: Leaky bucket = steady output rate, no bursts allowed [OK]
Common Mistakes:
  • Confusing token accumulation with leaky bucket
  • Mixing fixed window counting with leaky bucket
  • Assuming leaky bucket allows bursts
3. Consider a token bucket with a capacity of 5 tokens and a refill rate of 1 token per second. Initially, the bucket is full. If 7 requests arrive instantly, how many requests will be allowed immediately?
medium
A. 5
B. 7
C. 1
D. 0

Solution

  1. Step 1: Understand token bucket capacity and refill

    The bucket starts full with 5 tokens, each request consumes one token.
  2. Step 2: Calculate allowed requests

    Since 7 requests arrive instantly but only 5 tokens are available, only 5 requests are allowed immediately.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    Tokens available = 5, requests = 7, allowed = 5 [OK]
Hint: Max allowed = tokens in bucket at request time [OK]
Common Mistakes:
  • Assuming all 7 requests allowed instantly
  • Ignoring token bucket capacity
  • Confusing refill rate with immediate tokens
4. A developer implemented a leaky bucket rate limiter but notices that bursts are still allowed. What is the most likely cause?
medium
A. The bucket capacity is set too low
B. Requests are dequeued faster than the leak rate
C. Tokens are refilled too quickly
D. The leak rate is set to zero

Solution

  1. Step 1: Analyze leaky bucket behavior

    Leaky bucket allows steady output by leaking requests at a fixed rate.
  2. Step 2: Identify cause of bursts

    If requests are dequeued faster than the leak rate, bursts can pass through, breaking the smoothing effect.
  3. Final Answer:

    Requests are dequeued faster than the leak rate -> Option B
  4. Quick Check:

    Dequeue rate > leak rate = bursts allowed [OK]
Hint: Leaky bucket bursts mean dequeue faster than leak rate [OK]
Common Mistakes:
  • Confusing token refill with leaky bucket
  • Assuming bucket capacity controls bursts
  • Ignoring dequeue speed vs leak rate
5. You need to design a rate limiter for an API that allows short bursts but enforces an average rate limit over time. Which algorithm should you choose and why?
hard
A. Leaky Bucket, because it smooths out bursts by processing requests steadily
B. Fixed Window Counter, because it counts requests in fixed intervals
C. Sliding Log, because it logs every request timestamp
D. Token Bucket, because it allows bursts by accumulating tokens and enforces average rate

Solution

  1. Step 1: Understand requirement for bursts and average rate

    The system must allow short bursts but keep average rate limited over time.
  2. Step 2: Match algorithm to requirement

    Token bucket allows bursts by using tokens that refill over time, enforcing average rate while permitting bursts.
  3. Final Answer:

    Token Bucket, because it allows bursts by accumulating tokens and enforces average rate -> Option D
  4. Quick Check:

    Bursts + average rate = Token Bucket [OK]
Hint: Token bucket = bursts + average rate control [OK]
Common Mistakes:
  • Choosing leaky bucket which smooths bursts
  • Confusing fixed window with burst allowance
  • Ignoring average rate enforcement
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard