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.