Rate limiter
edgerate-limiter
Bounds request or concurrency rate per key.
- Category
- Edge
- Properties
- 7
- Components
- 7
- Rules
- 0
A node of this kind resolves each property from its own props, then the component's defaults, then the default below.
| property | type | values | required | default |
|---|---|---|---|---|
| algorithm | enum | token-bucket | leaky-bucket | sliding-window | fixed-window | adaptive | no | token-bucket |
| atomicOps | boolean | — | no | true |
| distributed | boolean | — | no | false |
| failMode | enum | open | closed | no | open |
| managed | boolean | — | no | false |
| placement | enum | edge | gateway | sidecar | in-process | no | gateway |
| scope | enum | global | user | ip | api-key | concurrency | no | user |
No rule selects this kind or its category. Governance calls that a recorded gap.
vendor-neutral
cloudflare
# yaml-language-server: $schema=../schema/kind.schema.json # Abstract kind: Bounds request or concurrency rate per key (token bucket at the edge, Envoy ratelimit, in-process semaphores, adaptive limiters). schemaVersion: "1" type: "kind" id: "rate-limiter" category: "edge" properties: algorithm: type: "enum" values: ["token-bucket", "leaky-bucket", "sliding-window", "fixed-window", "adaptive"] default: "token-bucket" scope: type: "enum" values: ["global", "user", "ip", "api-key", "concurrency"] default: "user" failMode: type: "enum" values: ["open", "closed"] default: "open" placement: type: "enum" values: ["edge", "gateway", "sidecar", "in-process"] default: "gateway" distributed: type: "boolean" default: false atomicOps: type: "boolean" default: true advanced: true managed: type: "boolean" default: false