GraphQL, gRPC or REST? Resolving the API Developer's Dilemma
summary
Compares REST, GraphQL, gRPC and WebHooks by mapping concrete tradeoffs: GraphQL uses a schema and client queries with tooling like Apollo and persistent queries to reduce round trips but complicates server-side batching; gRPC uses protobufs and HTTP/2 for low-latency internal RPCs and can be proxied for browsers; REST leverages HTTP caching, CDNs and HTTP/2 server push for edge performance and simpler CRUD; recommends contract-first (OpenAPI or proto files), graceful evolution over versioning, and using a BFF/composite layer when aggregating multiple services.
AI-written summary · about
chapters (24)
- 0:00Intro
- 2:17MY TWITTER TIMELINE IS A TYRE FIRE
- 6:11API COMMUNITY IS SMALL WE NEED TO WORK TOGETHER
- 6:49NO! THAT'S NOT THE WAY APIS WORK!
- 12:39THERE IS NO UNIVERSAL BEST API STYLE
- 12:56THERE IS ALWAYS A BEST API STYLE FOR YOUR PROBLEM
- 16:06CONSTRAINTS = PROPERTIES
- 17:38LET'S DISPEL SOME MYTHS
- 19:54REST IS STATE-MACHINE OVER HTTP
- 21:31FRIENDS DON'T LET FRIENDS BUILD RESTISH APIS
- 24:02GRAPHQL BREAKS CACHING
- 24:13WHAT KIND OF CACHING?
- 25:28GET WITH PERSISTED QUERIES
- 29:03OVER/UNDER FETCHING
- 31:56HELLO HTTP/2, GOODBYE NETWORK HACKS
- 34:23GRAPHQL IS NOT JUST ABOUT NETWORK EFFICIENCY
- 36:01GRAPHQL ELIMINATES THE NEED FOR VERSIONING
- 36:24VERSIONING VS GRACEFUL EVOLUTION
- 36:55GRACEFUL EVOLUTION SHOULD BE THE GOAL
- 37:41YOU CANNOT OVER COMMUNICATE WITH USERS!
- 38:29TOLERANT READERS ARE MODEL CLIENTS
- 40:17BUG FOR BUG COMPATIBILITY
- 42:05DOMAIN MODELLING IS PURELY A REST CONCERN
- 43:03GRAPHQL DELAYS THE LAST RESPONSIBLE MOMENT FOR IDENTIFYING USER NEEDS
related talks
59mGraphQL, gRPC or REST? Resolving the API Developer's Dilemma
01h 00mGraphQL, REST or RPC? Making the choice!
46mREST, GraphQL, gRPC, Webhooks: when to use each?
42mREST API vs gRPC, Which One Should You Use in Breaking a Monolith
01h 00mThe Secrets to Smart, Flexible, Self Describing API
26mCreate API for your databases, Rest, GraphQL, gRPC which one should you choose ?
23mHarnessing the Power of GraphQL
26mRest, GraphQL & gRPC
