4
Backend
gRPC vs REST for internal service-to-service communication
Performance ↔ Debuggability
Context
We have ~20 Go services talking JSON over HTTP. Payload serialization shows up in profiles and we've had several incidents caused by schema drift between services.
gRPC fixes both on paper. Costs: tooling, debugging with curl, load balancer support for HTTP/2, and a learning curve.
gRPCvsREST/JSON
Community verdict
gRPC 60%REST/JSON 40%
10 engineers · 2 opinions
With these constraints, what would you choose?
One choice per engineer. You can change it any time.
gRPC
REST/JSON
Debuggability →
Trade-offs
Dimensions
gRPCREST/JSONout of 5
- Performance
- 5gRPC scores 5 of 53REST/JSON scores 3 of 5
- Debuggability
- 2gRPC scores 2 of 55REST/JSON scores 5 of 5
- Contract safety
- 5gRPC scores 5 of 5
Community discussion
2 comments
Have you made this decision in production? Share your reasoning.
Sign in to commentWatch out for L4 load balancers: they pin long-lived HTTP/2 connections to one pod. You need client-side balancing or a mesh. JSON over HTTP/1.1 just works everywhere.
The contract is the real win, not the speed. Generated clients from .proto files plus buf breaking-change checks in CI ended our schema-drift incidents.