I adopted GraphQL early and went back to plain web APIs. The schema becomes a second product to maintain, and almost no client benefits from it.
Don't use it when
- Always, for the apps I build. For real-time, AppSync Events cost about $310 a month in my auction example vs $15–30 on Durable Objects.
In my words: what hurts
- I was an early adopter of GraphQL. I don't use it any more.
Provisioning
Official Pulumi package · Official Terraform provider
Use instead
Plain HTTP APIs on Lambda function URLs, and Durable Objects for real-time.
Alternatives
- Lambda function URLs Plain HTTP APIs.
- Cloudflare Durable Objects Real-time.
Worked examples
Where it fits
- An API for my app: Don't.
GraphQL turns your schema into a second product to maintain, and almost no app benefits from it. Plain HTTP endpoints on function URLs do the same job with nothing extra to keep in sync.
Instead: Lambda function URLs
- Something live that many people watch at once: Don't.
AppSync Events cost about $310 for the same auction, and bring GraphQL-era tooling. A Durable Object is the room and the referee in one.
Instead: Cloudflare Durable Objects
Last reviewed by Nicolas Dao