# Rate Limiting

Record: `arch:rate-limiting`
Kind: mechanism
Layer: [Performance Core](https://banes-lab.com/records/layer/performance-core.md)
Severity: mandatory for public APIs
Scope: API, service, queue
Canonical: https://banes-lab.com/ontology#arch-rate-limiting

## Repair

- Refactored by: Add Rate Limiter, Define Quotas
- Detected by: missing rate limiter on public/expensive endpoints
- Violated by: unlimited calls to constrained resource
- Measured by: limit hit rate, overload incidents
- Enforced by: API gateway/policy

## requires

- [Quota Policy](https://banes-lab.com/records/lex/quota-policy.md)

## reinforces

- [Backpressure](https://banes-lab.com/records/arch/backpressure.md)
- [Security](https://banes-lab.com/records/lex/security.md)

## enables

- [Abuse/Overload Protection](https://banes-lab.com/records/lex/abuse-overload-protection.md)

## conflicts-with

- [Unbounded Access](https://banes-lab.com/records/lex/unbounded-access.md)

## tensions-with

- [User Experience](https://banes-lab.com/records/lex/user-experience.md)

## tensions

- [Rate Limiting User Experience](https://banes-lab.com/records/tension/rate-limiting-user-experience.md)
