Rate limits & circuit breakers
Rate limiting is a token bucket per (tenant, principal, capability):
[rate_limit]capacity = 50 # burstrefill_per_sec = 10 # sustainedAn exhausted bucket returns 429.
Circuit breakers are per upstream. After failure_threshold consecutive
failures the breaker opens and requests get 503; after cooldown_ms a single
half-open probe decides whether to close or re-open. Upstream 5xx and transport
errors count as failures.
[circuit_breaker]failure_threshold = 5cooldown_ms = 5000Both are skipped entirely when unconfigured, so the passthrough path keeps its M0 cost.