Designing Data-Intensive Applications - Chapter 11 - Stream Processing

Earlier 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 11 discovers all aspects about Stream Processing. If your system needs to process some data on-the-fly then your DEV team should learn this info.
- Approaches for transmitting events: Direct messaging, Messaging Systems and Partitioned Logs. Their implementations, pros and cons.
- How to use Streams for databases. Sync databases, Change Data Capture (CDC), Event Sourcing. State, Streams, and Immutability.
- Nuances of Processing Streams. Useful use cases, reasoning about Time, 3 types of stream Joins, Fault Tolerance.

See also:
- Designing Data-Intensive Applications - Chapter 12 - The Future of Data Systems
- Designing Data-Intensive Applications - Chapter 1 - Reliable, Scalable, and Maintainable Applications
- Designing Data-Intensive Applications - Chapter 10 - Batch Processing
- Designing Data-Intensive Applications - Chapter 8 - The Trouble with Distributed Systems
- Designing Data-Intensive Applications - Chapter 4 - Encoding and Evolution