By Swetha Golla · ~6 min read · Senior Application Architect
TL;DR
Public API? REST. Cacheable, curl-able, and your consumers already know it.
Service-to-service inside your own walls? gRPC. Contracts, streaming, and protobuf serialization that's consistently ~3x faster than JSON (deserialization depends on payload size) — the perf and type-safety win. Not for a public API, though: browsers can't open a native gRPC connection, so external consumers would need grpc-web plus a translating proxy — real infrastructure most third parties won't build just to call you.
One backend feeding many divergent UIs? GraphQL — but only if you'll staff the schema like a product.






