Palestra

Level 3: The Data Layer

Where state lives: databases, replication, partitioning, and data modeling for scale.

Welcome to Level 3

The hardest problems in system design are data problems. Choosing the right database, designing schemas for scale, understanding replication and partitioning — these decisions shape everything downstream.

What you will learn

ModuleTopicCore Idea
3.1Relational DatabasesACID properties, indexes, query optimization, and connection pooling
3.2NoSQL TaxonomyDocument, key-value, wide-column, and graph — when to use each
3.3ReplicationLeader-follower, multi-leader, and leaderless strategies
3.4Partitioning and ShardingRange vs hash partitioning, shard key selection
3.5Indexing StrategiesB-tree vs LSM-tree, secondary indexes, full-text search
3.6Data Modeling for ScaleDenormalization, materialized views, access-pattern-driven design
3.7Polyglot PersistenceUsing the right database for each job in one system
3.8CheckpointDesign the data layer for a social media platform
Key Takeaway

Data decisions are the hardest to change later. Understanding the spectrum from relational to NoSQL, the tradeoffs of replication strategies, and how to model data for your access patterns is the foundation of every good system design.

Connect

Start with Module 3.1: Relational Databases. Even in a NoSQL world, understanding ACID properties and indexes is essential — most systems still use a relational database for their most critical data.

3.1 Relational Databases