← Back to all posts
When gRPC finally clicked (for me) and when I still pick REST
A short, opinionated guide to when gRPC pays for itself and when REST is still the right answer. With examples from our agentic AI platform — including the parts I got wrong first.
The moment it clicked
I had spent two days chasing a payload-shape bug between two of our services. JSON, no schema, “we agreed on it in Slack.” A colleague rewrote both ends in gRPC over an afternoon. The bug class disappeared. The conversation moved from what shape is this? to what should this do?
When I reach for gRPC
- Service-to-service calls inside the cluster.
- Anywhere streaming or backpressure actually matters.
- Cross-language calls where the type system is the contract.
When I still pick REST
- Anything a browser will touch.
- Webhooks and public APIs.
- One-off scripts and admin tools where curl matters.
The rule that finally settled it for me: use gRPC where the consumer is a program you also own; use REST where the consumer is the rest of the internet.