
API Rate Limiting: Patterns Every Developer Should Know
Whether you're building a trading platform, a data pipeline, or any API consumer, proper rate limiting is essential. Here are the patterns that work. Token Bucket Algorithm The most common server-side pattern: import time import threading class TokenBucket : def __init__ ( self , rate , capacity ): self . rate = rate # tokens per second self . capacity = capacity # max tokens self . tokens = capacity self . last_refill = time . time () self . lock = threading . Lock () def consume ( self , tokens = 1 ): with self . lock : self . _refill () if self . tokens >= tokens : self . tokens -= tokens return True return False def _refill ( self ): now = time . time () elapsed = now - self . last_refill new_tokens = elapsed * self . rate self . tokens = min ( self . capacity , self . tokens + new_tokens ) self . last_refill = now # 10 requests per second, burst of 20 limiter = TokenBucket ( rate = 10 , capacity = 20 ) Client-Side: Adaptive Rate Limiting When consuming external APIs, adapt to thei
Continue reading on Dev.to Tutorial
Opens in a new tab



