gRPC.
Two services that studied the same rulebook once, then speak in dense shorthand forever after.
Text “it happened again” to your oldest friend and they know exactly what you mean; a stranger reading over your shoulder learns nothing. Shared context is compression. gRPC applies that to services: instead of mailing self-describing JSON where every field announces its own name, both sides study one schema in advance and then exchange terse binary that only rulebook-holders can decode.
The other half of the idea is comfort. Nobody builds URLs or parses response bodies by hand — tooling generates code from the schema, so calling the other service looks like calling a function. Your code says getUser(42), and the serialising, sending, and decoding happen out of sight.
- Dear server: users, please.1
JSON spells out every field name inside every message — that self-description is exactly what makes it readable.
- Page two of the request…2
The readability is paid for on both ends, in bytes shipped and in time spent parsing text.
- Same book, both of us.3
The .proto file is the single agreement both sides compile from, so a field cannot quietly mean two things.
- Says plenty, weighs nothing.4
With names settled in advance, the wire carries only values — a fraction of the bytes, decoded without guessing.
- getUser(42). Done.5
Generated stubs hide the network entirely; the remote call sits in your code like any local function.
- Is this… math?6
Outsiders never learned the rulebook — a browser needs a translating proxy to join this conversation.
Where the speed comes from
Three savings stack. Binary messages run several times smaller than the same data as JSON, and decoding them is a direct read rather than text parsing. HTTP/2 underneath multiplexes many calls over one connection and streams in both directions, so chatty services stop paying per-call setup. And the schema is enforced when code is built: rename a field carelessly and the compiler objects today, instead of a consumer crashing next Tuesday.
Pick your audience
Private shorthand is for insiders. Between microservices you control at both ends, gRPC’s speed and strictness cost little and save plenty. At the public edge it turns awkward: browsers cannot speak it without help, and you cannot eyeball a binary payload the way you can curl a JSON API and read the answer. The common shape is plain HTTP where strangers knock, gRPC where the family talks.