Search across all documentation pages
Circuit-break vendor calls; do not block the request thread on unbounded external latency.
AppError with stable codes for clients.Retry-After on 429 from partners.express.json() global parser.apiVersion pinned in code.0-2 quick retries max. Bulk retry in worker queue.
Either SDK or app retry - not both unconfigured. Stripe: enable with idempotency keys.
Required for unit tests. Contract tests optional against sandbox weekly.
Separate endpoint URLs and signing secrets per env.
Almost never. Wrap in service; upstream issues go to vendor or thin patch.
Same timeout/retry/idempotency rules via got/axios client.
Blocking only when user waits for result. Everything else queue.
Import modular clients (AWS v3 style). Tree-shake Stripe if using subset builds.
No timeout on outbound call - thread pool stall under vendor slowness.
Read vendor retry, idempotency, and webhook docs before writing code.
Stack versions: This page was written for Node.js 24.18.0 (Active LTS), npm 10+, TypeScript 5.6+, Express 5, Fastify 5, and NestJS 11.