What is Rate Limiting & 429s?
The server answering 429 Too Many Requests when clients exceed quota, with Retry-After saying when to return. Limits protect shared databases and run histories from one noisy client starving everyone else.
Example
A usage-metered endpoint returns 429 with Retry-After during a traffic spike; well-behaved clients back off with jitter while abusers stay capped instead of toppling the database.
What people get wrong
Retrying 429s immediately in a tight loop. Honor Retry-After with backoff, or the limiter keeps refusing and the spike becomes an outage.
Related terms
Retry, Backoff & Jitter
Retrying failed calls after growing delays with random spread, so a fleet does not stampede a recovering service. Exponential backoff plus jitter turns synchronized thundering herds into gentle background noise.
Error Envelope
A consistent failure shape — code, message, details, and request id — returned by every endpoint. Envelopes let clients handle errors programmatically instead of parsing unpredictable prose per route.
Server Endpoint (+server.js)
The privileged layer for webhooks, secrets, and server-only logic. Anything touching keys, tokens, or private APIs lives here — never in components.
REST Resource Design
Modeling an API as nouns with stable URLs — /projects/:id/messages — instead of action endpoints. Resource design makes caching, auth scoping, and client reasoning predictable across every route.
Idempotent HTTP Verbs
GET, PUT, and DELETE produce the same result when safely retried; POST does not promise that. BYOB server routes use idempotent verbs for mutations clients may repeat after network timeouts.
Dead-Letter Queue
A holding area for messages that exhausted every retry, preserved with full context for inspection. Dead letters stop poison events from blocking healthy traffic and give operators a deliberate replay path.