Chapter 4: Encoding and Evolution
Summary: This chapter explores how data encoding affects the evolvability of distributed systems, focusing on compatibility and dataflow.
Sources: chapter4
Last updated: 2026-04-15
Core Themes
- Compatibility: In a distributed system, old and new versions of code often coexist. To maintain evolvability, we need backward-compatibility and forward-compatibility.
- Encoding Formats: Choosing the right format (textual vs. binary) impacts performance and how schemas can evolve.
- Modes of Dataflow: Data flows through databases, service calls (REST/RPC), and asynchronous message-brokers.
Key Sections
- Formats for Encoding Data: Comparing JSON, XML, thrift, protocol-buffers, and avro.
- Modes of Dataflow: How data moves between processes and what compatibility guarantees are required.