Resilience Best Practices
Document retry safety per endpoint in OpenAPI. These rules keep Node.js services available when dependencies slow down or fail.
Search across all documentation pages
Document retry safety per endpoint in OpenAPI. These rules keep Node.js services available when dependencies slow down or fail.
x-retry-safe and x-idempotency extensions per operation.fetch and HTTP client call uses AbortSignal.timeout. No infinite waits.statement_timeout or driver query timeout set. Server-side kill for runaway SQL.requestTimeout < LB idle. Staggered budget.timeout option. Workers do not run unbounded.Idempotency-Key on POST that creates charges or orders. Document in OpenAPI.meta.degraded in API responses when shedding features. Client can adjust UI.FEATURE_X=off without redeploy.open events. Page when core dependency breaker opens.server.close, drain pools, sdk.shutdown(). Match k8s grace period.Timeouts on all outbound calls + graceful shutdown + readiness probe. Add breakers before optional integrations multiply.
Both can retry GET; server owns idempotency for mutations. Document contract clearly.
No if meta.degraded is honest. Lying is returning success for failed payment - never do that.
Yes for external vendors and internal microservices called via HTTP.
Wrap providers with opossum; use Terminus for health; enable shutdown hooks.
Retry at HTTP layer for 5xx whole response. Field errors need partial response design.
Send duplicate POST with same key; assert single side effect and identical response body.
Resilience patterns protect error budget. See SLOs & Error Budgets.
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.
Reviewed by Chris St. John·Last updated Jul 16, 2026