System Design Mastery — Roadmap 20 Tuần
Người hướng dẫn: Principal Engineer & SRE Lead Học viên: Hieu — Backend Developer → System Architect Phương pháp: Alex Xu (SDI) + DDIA + Google SRE + AWS Builders Library + Security First Tham chiếu chính: System Design Interview — Alex Xu, DDIA — Kleppmann, References (full index) CS Foundations: 5 file foundations tại
06-CS-Foundations/— đọc song song hoặc trước bonus chapters
CS Foundations (đọc trước/song song advanced topics)
| File | Cần thiết cho |
|---|---|
| Tuan-Foundations-OS-Essentials | LLM Serving (PagedAttention), eBPF, Containers, fsync |
| Tuan-Foundations-Computer-Architecture | LLM Serving (memory bandwidth), Vector DB, performance |
| Tuan-Foundations-Database-Internals | Lakehouse (Parquet/columnar), Postgres internals, MVCC |
| Tuan-Foundations-Compilers-VMs | Edge+Wasm, V8 isolate, GC tuning |
| Tuan-Foundations-Math-for-Architects | Vector search, A/B test, CRDT lattice, queueing |
Triết lý học
"Everyone has a plan until they get punched in the face." — Mike Tyson
System Design không phải môn học thuộc lòng. Nó là môn ra quyết định dưới ràng buộc (constraints). Mỗi tuần trong roadmap này sẽ rèn cho Hieu ba thứ:
- Tư duy định lượng — Không nói “nhiều”, hãy nói “50K TPS”.
- Tư duy trade-off — Mọi lựa chọn đều có giá. CAP, latency vs throughput, cost vs reliability.
- Tư duy vận hành — Thiết kế xong phải deploy được, monitor được, và secure được.
Tổng quan 20 tuần
gantt title System Design Mastery — 20 Weeks dateFormat YYYY-MM-DD axisFormat %b %d section Phase 1: Fundamentals Tuần 01 - Scale from Zero :t1, 2026-03-23, 7d Tuần 02 - Back-of-the-envelope :t2, after t1, 7d Tuần 03 - Networking DNS CDN :t3, after t2, 7d Tuần 04 - API Design :t4, after t3, 7d section Phase 2: Components Tuần 05 - Load Balancer :t5, after t4, 7d Tuần 06 - Cache Strategy :t6, after t5, 7d Tuần 07 - Database Shard/Replica :t7, after t6, 7d Tuần 08 - Message Queue :t8, after t7, 7d Tuần 09 - Rate Limiter :t9, after t8, 7d Tuần 10 - Consistent Hashing :t10, after t9, 7d section Phase 3: Arch + DevOps + Security Tuần 11 - Microservices Pattern :t11, after t10, 7d Tuần 12 - CI/CD Pipeline :t12, after t11, 7d Tuần 13 - Monitoring Observability :t13, after t12, 7d Tuần 14 - AuthN/AuthZ Security :t14, after t13, 7d Tuần 15 - Data Security Encryption :t15, after t14, 7d section Phase 4: Case Studies (Alex Xu) Tuần 16 - Design URL Shortener :t16, after t15, 7d Tuần 17 - Design Chat System :t17, after t16, 7d Tuần 18 - Design News Feed :t18, after t17, 7d Tuần 19 - Design Notification Sys :t19, after t18, 7d Tuần 20 - Design Key-Value Store :t20, after t19, 7d
Phase 1: Fundamentals (Tuần 1–4)
Xây móng. Không có phần này, mọi thiết kế đều là lâu đài trên cát.
| Tuần | Chủ đề | Mục tiêu | Bài học |
|---|---|---|---|
| 01 | Scale from Zero to Millions | Hiểu vertical vs horizontal scaling, stateless architecture, database replication & sharding overview | Tuan-01-Scale-From-Zero-To-Millions |
| 02 | Back-of-the-envelope Estimation | Thành thạo ước lượng TPS, Storage, Bandwidth, QPS — ngôn ngữ chung của System Architect | Tuan-02-Back-of-the-envelope |
| 03 | Networking: DNS, CDN, TCP/UDP | Hiểu luồng request từ browser → server, DNS resolution, CDN caching, TLS handshake | Tuan-03-Networking-DNS-CDN |
| 04 | API Design: REST, gRPC, GraphQL | Thiết kế API có versioning, pagination, idempotency. Rate limiting ở API Gateway | Tuan-04-API-Design-REST-gRPC |
Kỹ năng then chốt sau Phase 1:
- Ước lượng nhanh (2 phút) TPS/Storage cho bất kỳ hệ thống nào
- Vẽ được high-level architecture diagram cơ bản
- Hiểu request lifecycle end-to-end
Phase 2: Components — Các viên gạch của hệ thống (Tuần 5–10)
Biết từng component hoạt động ra sao, khi nào dùng, trade-off là gì.
| Tuần | Chủ đề | Mục tiêu | Bài học |
|---|---|---|---|
| 05 | Load Balancer | L4 vs L7, thuật toán LB, health check, sticky session, SSL termination | Tuan-05-Load-Balancer |
| 06 | Cache Strategy | Cache-aside, Write-through, Write-behind, TTL, Cache stampede, Redis cluster | Tuan-06-Cache-Strategy |
| 07 | Database: Sharding & Replication | Master-Slave, Master-Master, shard key selection, cross-shard query, vitess/citus | Tuan-07-Database-Sharding-Replication |
| 08 | Message Queue | Kafka vs RabbitMQ, at-least-once/exactly-once, dead letter queue, backpressure | Tuan-08-Message-Queue |
| 09 | Rate Limiter | Token bucket, Sliding window, distributed rate limiting, API Gateway integration | Tuan-09-Rate-Limiter |
| 10 | Consistent Hashing | Virtual nodes, hash ring, ứng dụng trong cache distribution, DB sharding | Tuan-10-Consistent-Hashing |
Bonus chapters của Phase 2 (Architect-level deep dive)
Các chapter này không nằm trong sách Alex Xu nhưng là bắt buộc nếu em muốn vượt khỏi giới hạn “interview-prep” để chạm tới level Architect. Đọc sau khi đã hoàn thành Tuần 7 và 10.
| # | Chủ đề | Mục tiêu | Bài học |
|---|---|---|---|
| Bonus-1 | Consensus: Raft & Paxos | Hiểu sâu leader election, log replication, 5 safety properties, FLP impossibility, joint consensus | Tuan-Bonus-Consensus-Raft-Paxos |
| Bonus-2 | Consistency Models & Isolation Levels | Linearizability vs Sequential vs Causal, MVCC, Snapshot Isolation, SSI, Jepsen | Tuan-Bonus-Consistency-Models-Isolation |
| Bonus-4 | CRDTs — Conflict-free Replicated Data Types | G-Counter, OR-Set, RGA, LWW-Register, Yjs/Automerge, Figma/Notion use case | Tuan-Bonus-CRDTs-Conflict-Free-Data-Types |
| Bonus-6 | LLM Serving Infrastructure | vLLM, PagedAttention, continuous batching, quantization, distributed serving | Tuan-Bonus-LLM-Serving-Infrastructure |
| Bonus-7 | Multi-Region Active-Active + Aurora DSQL | Globally distributed SQL, atomic clocks, RPO/RTO, split-brain prevention | Tuan-Bonus-Multi-Region-Active-Active-DSQL |
| Bonus-8 | Model Context Protocol (MCP) | JSON-RPC, tools/resources/prompts, OAuth 2.1 + DPoP | Tuan-Bonus-MCP-Architecture |
| Bonus-9 | Edge Computing + WebAssembly | Cloudflare Workers, WASI Preview 2, Component Model, Durable Objects | Tuan-Bonus-Edge-Wasm-Architecture |
Kỹ năng then chốt sau Phase 2:
- Chọn đúng component cho đúng bài toán
- Giải thích trade-off khi lựa chọn giữa các phương án
- Tính capacity planning cho từng component
- (Architect) Giải thích Raft state machine + tại sao quorum phải lẻ
- (Architect) Phân biệt linearizability vs serializability vs eventual consistency
Phase 3: Architecture + DevOps + Security (Tuần 11–15)
Thiết kế xong phải ship được. Ship xong phải giữ được. Giữ xong phải bảo vệ được.
| Tuần | Chủ đề | Mục tiêu | Bài học |
|---|---|---|---|
| 11 | Microservices Patterns | Service decomposition, Saga, Circuit Breaker, Service Mesh (Istio), API Gateway | Tuan-11-Microservices-Pattern |
| 12 | CI/CD Pipeline | GitOps, Blue-Green, Canary, Feature Flag, Infrastructure as Code (Terraform) | Tuan-12-CICD-Pipeline |
| 13 | Monitoring & Observability | 3 pillars (Metrics, Logs, Traces), Prometheus/Grafana, ELK, OpenTelemetry, SLO/SLA/SLI | Tuan-13-Monitoring-Observability |
| 14 | AuthN / AuthZ & Security | OAuth2, JWT, RBAC, ABAC, Zero Trust, OWASP Top 10, API Security | Tuan-14-AuthN-AuthZ-Security |
| 15 | Data Security & Encryption | Encryption at rest/in transit, key management (Vault), PII handling, GDPR basics | Tuan-15-Data-Security-Encryption |
Bonus chapters của Phase 3 (Modern patterns 2024-2026)
Các pattern này là chuẩn de-facto trong hệ thống lớn 2024-2026 nhưng chưa có trong Alex Xu Vol 1+2.
| # | Chủ đề | Mục tiêu | Bài học |
|---|---|---|---|
| Bonus-3 | Outbox Pattern + Transactional Messaging | Đảm bảo consistency giữa DB và message queue, CDC, Debezium, Saga choreography vs orchestration | Tuan-Bonus-Outbox-Pattern |
| Bonus-5 | Modern Data Lakehouse (case study) | Iceberg/Delta/Hudi, Kappa architecture, Flink streaming, Bronze-Silver-Gold pattern | Case-Design-Modern-Data-Lakehouse |
| Bonus-10 | Multi-Tenancy SaaS Patterns | Silo/Pool/Hybrid, RLS, noisy neighbor, tenant context propagation | Tuan-Bonus-Multi-Tenancy-SaaS-Patterns |
| Bonus-11 | Platform Engineering & IDP | Backstage, golden paths, scaffolder, Team Topologies, Score.dev | Tuan-Bonus-Platform-Engineering-IDP |
| Bonus-12 | FinOps & Cloud Unit Economics | FinOps framework, cost allocation, unit economics, optimization | Tuan-Bonus-FinOps-Cloud-Unit-Economics |
| Bonus-13 | Progressive Delivery | Argo Rollouts, Flagger, feature flags, canary analysis, automated rollback | Tuan-Bonus-Progressive-Delivery |
Kỹ năng then chốt sau Phase 3:
- Thiết kế CI/CD pipeline cho microservice từ code → production
- Setup monitoring stack cơ bản (Prometheus + Grafana + Alertmanager)
- Threat modeling cho một hệ thống (STRIDE)
- (Architect) Implement Outbox + CDC để đảm bảo at-least-once delivery với DB consistency
- (Architect) Phân biệt cell-based architecture, shuffle sharding, blast radius reduction
Phase 4: Case Studies — Theo phong cách Alex Xu (Tuần 16–20)
Tổng hợp tất cả. Mỗi case study là một buổi System Design Interview thực chiến.
| Tuần | Chủ đề | Key Components | Bài học |
|---|---|---|---|
| 16 | Design URL Shortener | Hash function, Base62, Database choice, Rate limiting, Analytics pipeline | Tuan-16-Design-URL-Shortener |
| 17 | Design Chat System | WebSocket, Message queue, Presence service, E2E encryption, Push notification | Tuan-17-Design-Chat-System |
| 18 | Design News Feed | Fan-out on write vs read, Ranking, Cache layer, Content moderation, CDN | Tuan-18-Design-News-Feed |
| 19 | Design Notification System | Multi-channel delivery, Priority queue, Template engine, Rate limiting, Analytics | Tuan-19-Design-Notification-System |
| 20 | Design Key-Value Store | Consistent hashing, Quorum, Merkle tree, Gossip protocol, Failure detection | Tuan-20-Design-Key-Value-Store |
Kỹ năng then chốt sau Phase 4:
- Hoàn thành một System Design Interview trong 45 phút
- Kết hợp nhuần nhuyễn: estimation → high-level → deep dive → trade-off → ops
- Tự tin thảo luận về security và deployment strategy
Dependency Map giữa các tuần
graph LR T01[Tuần 01<br>Scale] --> T02[Tuần 02<br>Estimation] T01 --> T03[Tuần 03<br>Networking] T02 --> T04[Tuần 04<br>API Design] T03 --> T04 T04 --> T05[Tuần 05<br>Load Balancer] T04 --> T09[Tuần 09<br>Rate Limiter] T05 --> T06[Tuần 06<br>Cache] T05 --> T07[Tuần 07<br>Database] T06 --> T10[Tuần 10<br>Consistent Hashing] T07 --> T10 T07 --> T08[Tuần 08<br>Message Queue] T08 --> T11[Tuần 11<br>Microservices] T10 --> T11 T11 --> T12[Tuần 12<br>CI/CD] T11 --> T13[Tuần 13<br>Monitoring] T09 --> T14[Tuần 14<br>AuthN/AuthZ] T13 --> T14 T14 --> T15[Tuần 15<br>Data Security] T02 --> T16[Tuần 16<br>URL Shortener] T10 --> T20[Tuần 20<br>KV Store] T08 --> T17[Tuần 17<br>Chat] T06 --> T18[Tuần 18<br>News Feed] T08 --> T19[Tuần 19<br>Notification] style T02 fill:#f9a825,stroke:#333,stroke-width:2px style T16 fill:#66bb6a,stroke:#333 style T17 fill:#66bb6a,stroke:#333 style T18 fill:#66bb6a,stroke:#333 style T19 fill:#66bb6a,stroke:#333 style T20 fill:#66bb6a,stroke:#333
Cách sử dụng Vault này
Quy trình học mỗi tuần
- Đọc bài — Đọc file
Tuan-XX.mdtương ứng - Làm estimation — Tự ước lượng trước khi xem đáp án
- Vẽ diagram — Dùng Mermaid hoặc Excalidraw
- Code lab — Chạy code example trong bài
- Viết lại — Tóm tắt bằng lời của mình vào Daily Note
Tags hệ thống
#system-design— Tag chung#estimation— Bài tập ước lượng#security— Nội dung bảo mật#devops— Nội dung vận hành#case-study— Bài thực hành tổng hợp#trade-off— Các quyết định kiến trúc#alex-xu— Pattern từ SDI
Obsidian Plugins khuyến nghị
- Mermaid (built-in) — Render diagram
- Dataview — Query và tổng hợp nội dung
- Excalidraw — Vẽ diagram tự do
- Kanban — Theo dõi tiến độ tuần
- Templater — Template cho bài học mới
Cam kết
Hieu, hành trình từ Backend Developer đến System Architect không phải là học thêm nhiều tool. Nó là học cách nhìn toàn cảnh — từ một dòng code đến cả hệ thống phục vụ triệu người dùng. Mỗi tuần một viên gạch. 20 tuần, em sẽ có nền móng vững chắc. Let’s build.
Cập nhật lần cuối: 2026-03-18 Xem thêm: MOC-System-Design