Scale & Reliability
Reliability at scale, with clear limits and behavior.
Relay is designed for high-stakes notifications. This page summarizes how we handle limits, retries, idempotency, and regional posture so your teams can plan for growth.
Rate limits with clear backoff
Per-workspace limits return 429 + Retry-After to keep traffic predictable.
Idempotency for safe retries
Use Idempotency-Key (or x-idempotency-key) to dedupe repeated POST /v1/messages calls.
Deterministic retry + failover
Retryable failures trigger jittered retries (default 2 attempts) before following your provider order.
US-first regional posture
Relay is operated from US regions today. Contact us for region availability.
Rate limits + burst behavior
Limits are enforced per workspace and API key to protect shared infrastructure. Burst behavior follows your configured limit and returns 429 when exceeded.
- Default: 120 requests per minute per workspace and API key (test and production).
- HTTP 429 returned when limits are exceeded.
- Retry-After header signals when to retry safely.
- Contact support to raise limits for production workflows.
Idempotency
Include `Idempotency-Key` (or `x-idempotency-key`) on write requests to prevent duplicate sends. Relay returns the original result when a key is reused, and `idempotencyKey` in the body is accepted for compatibility.
Retry + failover timing
Relay retries failures that are classified as retryable (timeouts, 5xx, rate limiting) with jittered exponential backoff (base 200ms, max 2000ms), then fails over according to your routing policy. Every attempt is recorded in the trace timeline.
- Default: 2 attempts per provider with jittered backoff.
- Retry counts, backoff, and cooldown windows are policy-driven.
- Failover decisions are emitted via webhooks.
- Trace artifacts explain why a message moved providers.
Regional posture + SLO
Relay is operated from US regions today. Contact us to confirm current region coverage and expansion roadmap.
- Target SLO: defined in the SLA and tracked on /status.
- Public status is tracked at /status.
- Contact us to discuss multi-region plans and routing needs.
Documentation links
For implementation details, review the limits and retry guidance in the Relay docs.