Protocol Buffers
also called Protobuf
A binary serialisation format with a schema definition language, generating typed code and enforcing explicit compatibility rules through field numbering.
Data is encoded by field number, not by name, which is what makes the format compact and what makes its compatibility rules mechanical rather than conventional.
The rules follow directly: never reuse a field number, never change a field's type, and add rather than modify. A removed field's number must be reserved so a future developer cannot reuse it and silently misinterpret old data.
Compared with JSON: significantly smaller on the wire, much faster to parse, and typed — so a schema mismatch is a compile-time error rather than a runtime surprise. Against it: not human-readable, and tooling is required to inspect a payload, which raises the cost of debugging.
The schema file is the contract, and checking it for breaking changes in CI is what turns the compatibility rules from guidance into a guarantee.