The article’s new message contains id and note. An old binary relay can retain the unknown note; converting the old message object through JSON emits known fields and drops note. The final parser can succeed after that loss.

Protobuf compatibility changes at a JSON boundary

A schema change can be safe for binary messages and unsafe for a JSON gateway handling the same service. Protobuf’s binary format identifies fields by number; ProtoJSON normally exposes their names. Review compatibility as a matrix of producers, consumers, and transformations. A successful compile or one pair of compatible endpoints does not prove that every relay preserves the information they exchange. ...

November 19, 2027 · 5 min · XB Field Notes