1) Giới thiệu Phase
Hệ thống thực tế khác hệ thống trong textbook.
Kiến trúc production không đứng yên: nó phải tiến hóa theo traffic, sản phẩm và giới hạn vận hành. Không có một architecture duy nhất đúng cho mọi bài toán.
Phase này tập trung vào tư duy thiết kế theo ngữ cảnh: chọn pattern phù hợp, chấp nhận trade-off rõ ràng, và xây hệ thống có thể sống lâu trong production.
2) Vì sao phase này tồn tại
Sau khi nắm distributed systems và scalability, bạn cần bước tiếp theo: biến kiến thức đó thành quyết định kiến trúc thực tế.
Phase này tồn tại để lấp khoảng cách giữa lý thuyết và production:
- Từ hiểu component -> phối hợp thành architecture theo vòng đời hệ thống.
- Từ tối ưu cục bộ -> thiết kế theo traffic pattern thật.
- Từ mô hình chung -> quyết định theo domain, cost, tốc độ tăng trưởng và hành vi người dùng.
3) Learning Objectives
- Hiểu cách kiến trúc tiến hóa theo giai đoạn sản phẩm.
- Thiết kế hệ thống theo access pattern thay vì theo sở thích công nghệ.
- Lập luận quyết định kiến trúc theo traffic distribution thực tế.
- Chọn pattern phù hợp với hành vi hệ thống và ràng buộc vận hành.
- Áp dụng kiến thức distributed systems vào bài toán production.
- Thiết kế kiến trúc thực dụng, sẵn sàng cho tăng trưởng.
4) Bạn sẽ học gì trong phase này
- Architecture evolution strategy: bắt đầu đơn giản, nâng cấp có kiểm soát.
- Read-heavy design thinking: tối ưu cho workload mà reads chiếm đa số.
- Fanout architecture: pattern cốt lõi cho feed/social workloads.
- Traffic-pattern driven design: kiến trúc theo hành vi truy cập thực tế.
- Production trade-offs: cân bằng latency, cost, complexity, operability.
- Real system reasoning: ra quyết định dựa trên bối cảnh sản phẩm và dữ liệu vận hành.
5) Lessons Overview
Lesson 1 — Architecture Evolution Mindset — Start Simple, Scale Gradually
- Mô tả: học cách phát triển kiến trúc theo từng giai đoạn thay vì thiết kế quá mức ngay từ đầu.
- Bạn nhận được: tư duy tránh premature complexity và biết khi nào cần nâng cấp kiến trúc.
Lesson 2 — Read-Heavy Systems — Design Cho 99% Reads
- Mô tả: thiết kế hệ thống cho workload đọc áp đảo, nơi latency và cache strategy quyết định trải nghiệm.
- Bạn nhận được: khả năng tối ưu kiến trúc theo dominant access pattern.
Lesson 3 — Social / Feed Systems — Fanout Architecture
- Mô tả: phân tích feed architecture trong môi trường traffic lớn và cập nhật liên tục.
- Bạn nhận được: nền tảng đánh đổi giữa fanout-on-write và fanout-on-read, cùng các thách thức scale thực tế.
6) Kết quả sau khi hoàn thành Phase 5
Bạn có thể:
- Thiết kế kiến trúc production theo bối cảnh thực tế thay vì mẫu cố định.
- Lập luận lộ trình tiến hóa kiến trúc theo tăng trưởng sản phẩm.
- Chọn kiến trúc theo workload và traffic pattern.
- Đánh giá trade-off thực tế giữa hiệu năng, chi phí và độ phức tạp vận hành.
- Áp dụng kiến thức distributed systems vào thiết kế hệ thống thật.
- Tư duy như một production system architect khi ra quyết định.
7) Chuẩn bị cho Phase 6
Phase 5 giúp bạn chuyển từ "biết pattern" sang "ra quyết định theo bối cảnh".
Sang Phase 6 — System Design Mastery, bạn sẽ đi từ pattern-level sang framework-level:
- tư duy quyết định kiến trúc ở mức nâng cao,
- kỹ năng system design ở mức interview chuyên sâu,
- architect mindset cho bài toán mở,
- và năng lực giải quyết vấn đề thực tế với lập luận rõ ràng.