Why Thrift, Protobuf, and Avro must survive schema change, not only serialize bytes
Schema evolution in Avro, Protocol Buffers and Thrift Martin Kleppmann's blog
Martin Kleppmann on how teams reach schema-based binary formats and why schema evolution is the overlooked requirement.
Based on
Schema evolution in Avro, Protocol Buffers and Thrift Martin Kleppmann's blog
The post walks through how teams usually serialize data: language-built-in formats, then language-agnostic text like JSON or XML, then compact binary JSON-like formats, then schema-backed systems. At that fourth stage the common options are Thrift, Protocol Buffers, and Avro—efficient, cross-language serialization with schemas and often code generation. Many comparisons of those tools overlook schema change. In practice schemas are never final; someone soon wants to add a field. Thrift, Protobuf, and Avro all support schema evolution so producers and consumers can run different versions at once and still work.
Data and platform teams hit this as soon as multiple services share records. Choosing a format only for compactness or codegen, without evolution rules, locks you into brittle rollouts.
Governed shared meaning needs versioned schemas that stay readable across mixed clients—exactly the property Kleppmann flags as crucial and often ignored.
Put this to work on CoreModels
Related connectors and recipes
See all connectors →Take the next step
Try CoreModels, talk with our team, or explore more resources.