HTTP vs WebSockets, API Gateway Stages, and Versioning Strategies That Survive Deprecation
Quick summary: July 2026: API Gateway REST integrations still default to a 29s timeout (quota increases possible for Regional/private); WebSockets bill per message and connection minute — bake both into SLOs before picking protocols.
Key Takeaways
- On July 19, 2026, Amazon API Gateway still differentiates REST, HTTP, and WebSocket APIs with different billing and timeout surfaces
- For pattern coverage beyond this note, see our existing API Gateway REST/HTTP/WebSocket patterns article; this field note focuses on decision tension and versioning that survives deprecation
- Reproduce this — Versioning checklist template: HTTP (request/response) when it wins Default for CRUD JSON, cache-friendly GETs, and stateless authentication (JWT/OAuth)
- Pair with: - AWS WAF on regional APIs or CloudFront distributions (WAF beyond basics)
- Versioning strategies (opinionated) Pick one primary signal: 1

Table of Contents
On July 19, 2026, Amazon API Gateway still differentiates REST, HTTP, and WebSocket APIs with different billing and timeout surfaces. The number that still shocks architecture reviews: REST integrations default to a 29-second maximum (50 ms–29 s configurable); you can request a quota increase above 29s for Regional and private REST APIs only, often with throttle trade-offs. Until that quota lands, long-running work must go async or to a compute plane with different timeout controls.
For pattern coverage beyond this note, see our existing API Gateway REST/HTTP/WebSocket patterns article; this field note focuses on decision tension and versioning that survives deprecation.
Reproduce this — Versioning checklist template:
examples/architecture-blog-2026/api-design/versioning-conventions.md
HTTP (request/response) when it wins
Default for CRUD JSON, cache-friendly GETs, and stateless authentication (JWT/OAuth). Pair with:
- AWS WAF on regional APIs or CloudFront distributions (WAF beyond basics).
- IAM/authorizers aligned to least privilege (IAM best practices).
WebSockets when they win
Choose WebSockets when:
- The server must push many small updates (tick data, collaborative editing).
- You accept stateful connection troubleshooting (stale connections, proxy idle timeouts).
Costs accrue per message and connection-minute—model them before broadcasting chat-scale fan-out.
Avoid WebSockets when mobile networks and corporate proxies make long-lived ports flaky without a fallback polling path.
AppSync (GraphQL + subscriptions)
When your clients need flexible reads and subscription channels with managed auth integration, AWS AppSync often beats hand-rolled GraphQL on Lambda—evaluate resolver heat and caching separately from REST gateway pricing.
Versioning strategies (opinionated)
Pick one primary signal:
- URL prefix (
/v2026-05/...) — blunt, CDN-friendly, easy WAF paths. - Header contract (
Acceptvendor MIME) — avoids URL churn; demands consistent observability tags. - Stage-based (
prod,canary) — operational, not semantic versioning alone—pair with semantic headers or URLs so customers know what they parse.
Opinionated take — Public third-party APIs should ship URL major versions and publish Sunset headers (RFC 8594) even if you love headers internally. External developers grep paths, not MIME types, at 2 AM.
What broke: the “silent deprecation”
An internal team deleted a stage believing it unused. Mobile clients still referenced the stage URL embedded in a legacy binary. Error budgets burned before anyone correlated 403/404 spikes with an infrastructure changefront.
Fix: deprecation registers + synthetic clients + minimum N+2 release overlap before decommission.
For service decomposition context, contrast with microservices vs monolith on AWS.
What This Post Doesn’t Cover
- VPC Lattice service networking vs API Gateway—different abstraction (service mesh vs edge HTTP).
- Istio/Envoy on EKS — see service mesh articles if east-west mTLS dominates.
If You Only Do One Thing
Attach per-route CloudWatch metrics (4xx/5xx, integration latency) to the same dashboard as client release versions parsed from headers you already log.
What to Do This Week
- Inventory all
execute-apistage URLs in mobile binaries and partner PDFs; anything not in Terraform gets a ticket. - Confirm every >10s synchronous integration has an SQS/Step Functions exit before API Gateway timeout cliffs.
- Add WAF rate-based rules to public WebSocket $connect routes if you have not already—credential stuffing loves connect storms.
When ingress tuning intersects Lambda cold paths, cross-read ingress and cold-start field notes.
Frequently asked questions
When should we avoid WebSockets on API Gateway?
What versioning style hurts caching the most?
Is AppSync always better than API Gateway for GraphQL?
What breaks canary deployments on API Gateway?
Why do microservices multiply versioning pain?

AWS Cloud Architect & AI Expert
AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.




