Forward and backward compatible wire rules for changing schemas

Protobuf lets old and new services talk

A gRPC service and its clients ship on their own schedules, so the schema has to change while both old and new binaries are running. Protobuf is built for exactly that: the compatibility contract lives in field numbers and wire types rather than in names, and a reader that does not recognise a field skips it instead of failing. ...

February 26, 2028 · 4 min · XB Field Notes
Streaming over shared HTTP/2 frames with cancellation and deadlines.

gRPC multiplexes many streams over one HTTP/2 connection

Multiplexing shares the transport and keeps ordering within each stream, which is why long-lived pushes fit this model better than request-reply websockets. One connection, many streams HTTP/2 multiplexes many logical streams over a single TCP connection, and gRPC makes each call a stream, so a chatty microservice stops reopening sockets per request. That one shared connection means connection setup, TLS handshake, and idle bookkeeping happen once instead of per call. Streams are independent in ordering and cancellation, so a slow, long-lived stream does not block a short one on the same pipe. The practical effect is a low army of connection state, with per-call overhead shrinking to a frame header. ...

January 16, 2027 · 5 min · XB Field Notes