Databases & Storage at Scale — System Design Roadmap
Choosing and scaling the data layer of a distributed system
Steps in Databases & Storage at Scale
- SQL vs NoSQL — intermediate · Relational vs non-relational databases and when to choose each
- Relational DB Design & Normalization — intermediate · Normal forms, foreign keys and designing a relational schema
- NoSQL Data Models — intermediate · Document, key-value, column-family and graph data models
- Database Indexing — intermediate · B-tree indexes, composite indexes and how indexing trades write speed for read speed
- Database Replication — intermediate · Leader-follower replication, replication lag and read replicas
- Database Sharding & Partitioning — intermediate · Splitting data across multiple database instances by key
- Consistent Hashing — intermediate · Distributing keys across nodes in a way that minimizes reshuffling when nodes change
- ACID vs BASE — intermediate · Strict transactional guarantees vs eventually consistent, available systems
- Distributed Transactions (2PC & Saga) — advanced · Coordinating transactions across multiple services or databases
- Blob/Object Storage — intermediate · Storing and retrieving large unstructured files like images, videos and backups
Part of
- System Design roadmap — the full learning path