Overview
Direct Answer
Rate limiting is a control mechanism that restricts the number or frequency of requests a client can submit to an API or service within a defined time window. It prevents resource exhaustion and ensures fair access by enforcing quotas on client behaviour.
How It Works
The mechanism typically employs algorithms such as token bucket or sliding window to track request counts against a time-based threshold. When a client exceeds the permitted quota, subsequent requests are either rejected with a 429 status code, queued for later processing, or throttled with increased latency. State is maintained server-side or distributed across infrastructure to enforce limits consistently.
Why It Matters
Organisations deploy this technique to protect backend infrastructure from overload, control operational costs associated with compute and bandwidth, and maintain service availability for all users. It is critical for preventing denial-of-service conditions and enabling predictable resource consumption in multi-tenant environments.
Common Applications
Public APIs from cloud providers, payment processors, and social media platforms implement tiered limits based on subscription levels. Web services use it to manage database query loads, whilst mobile applications throttle background synchronisation to preserve bandwidth and battery efficiency.
Key Considerations
Determining appropriate thresholds requires balancing legitimate user needs against infrastructure capacity; overly restrictive limits degrade experience, whilst lenient settings provide insufficient protection. Clients must implement retry logic with exponential backoff to handle rejection gracefully.
Cross-References(1)
Referenced By1 term mentions Rate Limiting
Other entries in the wiki whose definition references Rate Limiting — useful for understanding how this concept connects across Software Engineering and adjacent domains.
More in Software Engineering
SOLID Principles
Paradigms & PatternsFive principles of object-oriented design promoting maintainable, flexible, and understandable code.
Version Control
Development PracticesA system that records changes to files over time so that specific versions can be recalled later.
WebSocket
Paradigms & PatternsA communication protocol providing full-duplex communication channels over a single persistent TCP connection.
NoSQL Database
Paradigms & PatternsA non-relational database designed for specific data models offering flexible schemas for modern applications.
Stress Testing
Paradigms & PatternsTesting a system beyond normal operational capacity to determine its breaking point and failure behaviour.
Load Testing
Quality & TestingTesting a system's behaviour under expected and peak load conditions to ensure adequate performance.
Canary Deployment
Paradigms & PatternsA deployment strategy where changes are gradually rolled out to a small subset of users before full deployment.
Queue System
Paradigms & PatternsA data structure and infrastructure for managing asynchronous task processing and inter-service communication.