Foundation
Designing Data-Intensive Applications
Database on data models, replication and transactions.
Data storage is the heart of any system. Everything depends on the choice of data model and database type: speed, reliability, cost and ability to scale. This part helps you understand what repositories exist, how they are designed, and where to use them.
Why understand storage systems?
Architectural compromises
SQL, NoSQL, graphs, wide-column - different models provide different guarantees and restrictions.
Latency vs consistency
Replication and transactions affect system latency and stability.
Scaling
Sharding, partitions, indexes and caching set the limits to growth.
Cost of ownership
Different DBMSs require different operational loads and support costs.
Section map: what we are studying
Storage and engines
PostgreSQL, MySQL, MongoDB, Cassandra and their architectures.
Data reliability
Replication, transactions, indexes, consistency and failures.
What will this section give in practice?
- Quick selection of the appropriate DBMS for the task.
- Understand the tradeoffs between data model and availability.
- Ability to design schemas, indexes and storage strategy.
- Preparation for System Design interviews with a focus on storage.
It's worth starting with introduction to data storage And database guide.
