Rate Limiting
Rate Limiting constrains how quickly work may be accepted, dispatched, delivered, or processed.
Rate limiting protects observers, entities, dependencies, brokers, and storage systems from overload. It is part of the control semantics that shape execution across boundaries.
A rate limit should define:
- The subject being limited, such as identity, observer, tenant, entity, route, queue, or dependency.
- The window or budget.
- The response when the limit is exceeded.
- Whether delayed work preserves ordering.
- Whether retries are allowed and how they are scheduled.
Rate limiting often appears with flow control and backpressure, retry, queueing, and admission control. A rate limit applies a declared time-based policy or budget; flow control adapts admission or offered work to capacity. They may regulate the same edge without becoming the same concern.
A rate limit may be static or the manipulated variable of a control model. AIMD or PID control can adjust it from capacity observations, but the controller algorithm does not define the limit's subject, window, budget, or exceeded-limit response.
Interaction control flow determines which participant has a natural enforcement point. An active driver can reduce fetch cadence or batch size before pushing to a constrained sink. A passive sink in a sender-driven path may instead need to refuse, shed, block, or admit into a bounded queue. The control-flow role does not choose the rate policy; it determines where that policy can regulate progress.
External References
- Gregor Hohpe, Control Flow—The Other Half of Integration Patterns, 2024.
Related concepts: control theory, control models, AIMD, PID control, queueing theory, flow control, admission control and load shedding, scalability, retry, metastability, ordering, recovery, interaction, interaction control flow, brokers, application hosts.