Designing Data-Intensive Applications by Martin Kleppmann

Principles and practicalities of data systems and how to build data-intensive applications.

Table of Contents


4 fundamental ideas that we need in order to design data-intensive applications.

Reliable, scalable, maintainable applications.

Data models and query languages.

Storage and retrieval.

Encoding and evolution.

Replication, partitioning/sharding, transactions, and what it means to achieve consistency and consensus in a distributed system.

Replication.

Partitioning/sharding.

Transactions.

Things that may go wrong in a distributed system.

Consistency and consensus.

Batch and stream processing.

Batch processing.

Stream processing.


References:



Tagged: #book, #architecture, #data, #system