System Design School

Here is something I will note for the course in System Design School, but I haven’t start :)

1. Introduction

1. Basics

Introduction

Template

Core Challenges

Scale System

Study Guide

2. API Design

Intro

Example

Pagination

3. Non-functional Requirements

Requirements

Components

High Availability

Latency

Throughput

4. Resource Estimation

Intro

QPS

Resource Estimation in real world

5. Microservices

Microservices or Monolithic

2. Microservices & Data Flow

1. Synchronous Communication

Microservice communication

Sync Communication Intro

Implementation

Failure Handling

Timeout

Retries

Circuit Breaker

Fallbacks

Service Discovery

2. Asynchronous Communication

1. Async Communication Intro

2. Message Queues

3. Message Queue Patterns

4. Redis-Queue Queue

5. Log-based Message Queue

6. Kafka

3. Scaling Service

1. Horizontal Scaling

1. Computing Environments

2. Web/App | Stateless vs Stateful

3. Web/App | Single vs Scaling

4. Load Balancing

5. Auto Scaling

2. Read Write Seperation

1. Introduction

2. CQRS

3. Caching

1. Intro

2. Patterns

3. Cache-aside

4. Write-through

5. Write-back

6. Cache Eviction

7. Caching TTL

8. Scaling Cache

9. CDN

10. Thundering Herd Problem

4. Data Flow

1. Overview

2. Push and Pull

3. Example in Twitter

4. Data Storage

1. Data Strutures Behind Database

1. Data Structures Behind Database

2. Sorted String Table (SSTable)

3. LSM Tree

4. B-Tree

2. Storage

1. Intro

2. SQL Database

3. NoSQL Database

4. Key-value Database

5. Document Database

6. Full-text Search Database

7. OLTP vs OLAP

8. Blob/Object Storage

9. SQL and NoSQL

5. Scaling Data Storage

1. Data Replication

1. How to scale databases

2. Database Replication

3. Implement

4. Tutorial

5. Change Data Capture

2. Data Partitioning

1. Intro

2. Advanced

3. Consistent Hashing

6. Batch & Stream Processing

1. Batch Processing

Batch Processing

MapReduce

Dataflow Engines

Why to use

2. Stream Processing

Stream Processing

Batch and stream

Lambda Architecture

Kappa Architecture

7. Patterns & Templates

7.1. Patterns

1. A database per microservices

2. Cache, Always

3. CDC + ES

4. Two-Stage Processing

5. Database Optimization

7.2. Template

Design Template

System Design Template Application

Last Updated On February 13, 2025