OUTBOUND RATE LIMITER
outbound-rate-limiter.ts
Token bucket for external API calls with per-platform limits.
StarkWHAT THIS PATTERN TEACHES
How to rate-limit outbound API calls to respect platform limits, using a token bucket algorithm with configurable rates per platform.
WHEN TO USE THIS
Any external API integration with rate limits: ad platforms, social APIs, email services.
AT A GLANCE
class RateLimiter {
async acquire(): Promise<void> {
while (this.tokens <= 0) {
await this.waitForRefill();
}
this.tokens--;
}
}FRAMEWORK IMPLEMENTATIONS
TypeScript
class RateLimiter {
private tokens: number;
private maxTokens: number;
private refillRate: number; // tokens per second
private lastRefill: number;
constructor(maxPerSecond: number) {
this.maxTokens = maxPerSecond;
this.tokens = maxPerSecond;
this.refillRate = maxPerSecond;
this.lastRefill = Date.now();
}
async acquire(): Promise<void> {
this.refill();
while (this.tokens <= 0) {
await new Promise(r => setTimeout(r, 100));
this.refill();
}
this.tokens--;