SYSTEM DESIGN
🇬🇧UK Edition🇨🇦Canada Edition🌐Global Tech

Designing a High-Throughput API Rate Limiter for Microservices

Marcus Thorne
Marcus Thorne
Enterprise Cloud Architect
Updated 03/09/20268 min read3 views

System Design Requirement

An API Rate Limiter regulates request throughput, preventing DDoS attacks and protecting cloud backend services in London and Toronto edge regions.

javascript
class TokenBucket {
  constructor(capacity, refillRate) {
    this.capacity = capacity;
    this.refillRate = refillRate;
    this.tokens = capacity;
    this.lastRefill = Date.now();
  }

  allowRequest() {
    const now = Date.now();
    const elapsed = (now - this.lastRefill) / 1000;
    this.tokens = Math.min(this.capacity, this.tokens + elapsed * this.refillRate);
    this.lastRefill = now;

    if (this.tokens >= 1) {
      this.tokens -= 1;
      return true;
    }
    return false;
  }
}

const bucket = new TokenBucket(3, 1);
console.log("Allowed:", bucket.allowRequest());

Frequently Asked Questions (FAQ)

Q: Why use Redis for rate limiting?

Redis provides atomic memory operations like INCR and EXPIRE with sub-millisecond latency.

Marcus Thorne
Written by Marcus ThorneAdSense EEAT Verified

Enterprise Cloud Architect. Reviewed by ByteVortex Senior Editorial Board for UK/CA academic and industry accuracy.