Giao diện
System Design Universe
Năm 2012, Instagram đạt 30 triệu người dùng với đúng 3 kỹ sư backend. Không phải vì họ viết code nhanh hơn ai — mà vì họ hiểu cách chọn đúng kiến trúc từ đầu: PostgreSQL thay vì NoSQL, Memcached đặt đúng chỗ, và biết khi nào cần shard. Ngược lại, không ít startup sập hoàn toàn khi traffic tăng 10x chỉ vì một quyết định database sai từ ngày đầu.
System Design là ranh giới giữa người viết code và người kiến trúc hệ thống. Hiểu nó là hiểu cách scale từ 100 đến 100 triệu users, cách chọn giữa consistency và availability, và cách thiết kế để hệ thống vẫn đứng vững khi mọi thứ đều có thể fail.
Lộ trình học
Kiến thức System Design được xây theo 5 tầng. Mỗi tầng phụ thuộc vào tầng trước — đừng nhảy cóc.
Cách tiếp cận khuyến nghị:
- Fundamentals trước — Nắm vững scalability, load balancing, caching, database design. Đây là ngôn ngữ chung của mọi cuộc thảo luận kiến trúc.
- Distributed Theory — Hiểu bản chất phân tán: consensus, consistency models, communication patterns. Không hiểu tầng này thì mọi quyết định kiến trúc đều dựa trên cảm tính.
- Architect Patterns — Áp dụng lý thuyết vào pattern cụ thể: microservices, CQRS, event sourcing. Phân biệt hype và reality.
- Case Studies — Thiết kế hệ thống thực tế từ zero. Đây là nơi mọi kiến thức kết nối lại với nhau.
Nội dung
📚 Fundamentals
Nền tảng mà mọi System Architect cần nắm vững trước khi bước vào thế giới phân tán.
| Chủ đề | Mô tả |
|---|---|
| Scalability | Vertical vs Horizontal Scaling, Capacity Planning |
| Load Balancing | L4/L7, Consistent Hashing, Health Checks |
| Caching | Redis, Memcached, CDN, Cache Invalidation |
| Database Design | SQL vs NoSQL, Indexing, Sharding Strategies |
🔗 Distributed Theory
Bản chất của hệ thống phân tán — nơi mọi thứ đều có thể thất bại bất cứ lúc nào.
| Chủ đề | Mô tả |
|---|---|
| Consensus | Raft, Paxos, Leader Election |
| Consistency Models | Strong vs Eventual, ACID vs BASE |
| Sync Communication | REST vs gRPC vs GraphQL |
| Async Messaging | Kafka vs RabbitMQ, Pub/Sub Patterns |
🏗️ Architect Patterns
Kiến trúc chuyên sâu — phân biệt giữa lý thuyết đẹp và thực tế khắc nghiệt.
| Chủ đề | Mô tả |
|---|---|
| Monolith vs Microservices | Trade-offs, Modular Monolith |
| Distributed Transactions | 2PC, Saga Pattern, Idempotency |
| Advanced Patterns | CQRS, Event Sourcing, Service Mesh |
| Serverless & Edge | FaaS, Cold Start, Vendor Lock-in |
🏆 Case Studies
Thiết kế hệ thống thực tế từ zero — nơi kiến thức được kiểm chứng qua áp lực thực.
| Chủ đề | Mô tả |
|---|---|
| Design Twitter | Feed fanout, timeline architecture |
| Design YouTube | Video processing pipeline, CDN strategy |
| Design Uber | Geospatial indexing, real-time matching |
| Design WhatsApp | End-to-end encryption, message delivery |
⚡ Advanced Topics
| Chủ đề | Mô tả |
|---|---|
| API Design | REST, GraphQL, gRPC — Decision Framework |
Bắt đầu từ đâu?
| Profile của bạn | Bắt đầu tại |
|---|---|
| Mới với System Design | Fundamentals → Scalability |
| Chuẩn bị phỏng vấn | Case Studies → Twitter |
| Senior Engineer muốn đào sâu | Architect Patterns |