Google Stubby goes open
gRPC is the open source version of Stubby, Google’s internal RPC system used for over a decade for billions of requests per second between services. Google decides to open it to standardise the industrial microservices space.
The release
gRPC 1.0 is released on 23 August 2016. Apache 2.0 licence. Donated to CNCF (Cloud Native Computing Foundation). Name: “gRPC Remote Procedure Calls” (recursive acronym). Historical inspiration: UNIX RPC, CORBA, SOAP, Thrift (Facebook), Avro (Hadoop).
Architecture
- HTTP/2 as transport — multiplexing, streaming, header compression
- Protocol Buffers (protobuf) as IDL and wire format — compact and typed binary schema
- Code generation for client and server in 10+ languages
service UserService {
rpc GetUser (UserRequest) returns (User);
rpc ListUsers (UsersRequest) returns (stream User);
}
message UserRequest { string id = 1; }
message User { string id = 1; string name = 2; }
Call types
- Unary — one request, one response
- Server streaming — one request, many responses
- Client streaming — many requests, one response
- Bidirectional streaming — both stream
Advantages
- Performance — binary protobuf vs JSON: 3-10× more compact and faster
- Type safety — enforced schema contract
- Polyglot — C++, Java, Go, Python, Ruby, Node, PHP, C#, Dart, Kotlin, Swift
- Native streaming — RPC and data in a single connection
- Deadlines and cancellation — built-in
- Interceptors — middleware-like
Limits
- Difficult debugging — no human-readable payload, need
grpcurlorBloomRPC - Browser — HTTP/2 trailers not supported in fetch; need gRPC-Web or Connect
- L7 load balancing more complex than HTTP/1.1 JSON
- Schema migration — breaking backward compatibility in protobuf is easy
Tools
- gRPC-Web — browser→server bridge via Envoy proxy
- Connect (Buf, 2022) — gRPC + gRPC-Web + REST-JSON unified
- Buf — protobuf linter/breaking detection/registry
- Protolock — contract versioning
Adoption
gRPC is used in high-profile tech environments:
- Google Cloud internal APIs
- Netflix — Ribbon, Eureka migration
- Uber — RIB framework
- Square, Slack, Dropbox — internal microservices
- CockroachDB, etcd, Dgraph — internal protocols
In the Italian context
gRPC is present in tech-forward Italian teams:
- Fintech — internal microservices (Fineco, Banca Sella, challengers)
- Trading platforms — low latency
- AI/ML serving — Triton Inference Server, Ray Serve use gRPC
- Industrial IoT — edge computing with streaming
- Cloud-native startups — Go and Rust ecosystem
References: gRPC 1.0 (23 August 2016). Google. Apache 2.0 licence. CNCF project. Based on HTTP/2 and Protocol Buffers. Unary/streaming types. gRPC-Web, Connect (Buf) extensions.
