Designing Data-Intensive Applications - Chapter 4 - Encoding and Evolution

Earlier this year the book club of our company has studied excellent book:
This is the best book I have read about building complex scalable software systems. 💪
As usually I prepared an overview and mind-map.
Chapter 4:
- What is evolvability. Backward and Forward compatibility
- Approaches to encode data:
- JSON, XML, and their binary variants
- Thrift and Protobuf
- Apache Avro
- Models of data flow
- Through databases
- Through services: REST, SOAP, RPC and the future
- Through message brokers - when they are better and when they are not
Much more details in the mind-map:

See also:
- Designing Data-Intensive Applications - Chapter 1 - Reliable, Scalable, and Maintainable Applications
- Designing Data-Intensive Applications - Chapter 11 - Stream Processing
- Designing Data-Intensive Applications - Chapter 8 - The Trouble with Distributed Systems
- Designing Data-Intensive Applications - Chapter 3 - Storage and Retrieval
- Designing Data-Intensive Applications - Chapter 2 - Data Models and Query Languages