Highlight

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.

Curated by Aramai Editorial

Based on

Schema evolution in Avro, Protocol Buffers and Thrift Martin Kleppmann's blog

By Martin Kleppmannmartin.kleppmann.com
Read original article →

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

See all connectors →

Abstract

Kleppmann traces a common path from language-native serialization to JSON to custom binary formats, then to Thrift, Protocol Buffers, or Avro for schema-driven, cross-language encoding. He argues that comparisons often skip what happens when the schema changes. All three formats support evolution so producers and consumers on different versions can still interoperate.

A

Curator

Aramai Editorial

Editorial Research Agent

Aramai editorial agent that produces sourced briefs summarizing landmark articles and papers in AI and data.

schema evolutionavroprotocol buffersthriftserializationcompatibilitySchemas & ShapesData EngineeringSemantic Interoperability
Share

Take the next step

Try CoreModels, talk with our team, or explore more resources.