Khóa học miễn phí

System Design nâng cao: Đánh đổi, sharding, cache và xử lý lỗi

Đào sâu replication, sharding, cache, queue, rate limiting và outbox qua tình huống lỗi có số liệu. Luyện giải thích vì sao chọn thiết kế này.

4.4140 đánh giá
213 học viênĐội ngũ GDev15 chương · 107 bàiCập nhật tháng 10, 2026

Nội dung khóa học

15 chương · 107 bài
01Nền tảng System Design11 bài học
02Kiến trúc hệ thống (HLD)11 bài học

Chưa có bài học được xuất bản trong chương này.

03Khả năng mở rộng (Scalability)7 bài học

Chưa có bài học được xuất bản trong chương này.

04Cơ sở dữ liệu trong System Design9 bài học

Chưa có bài học được xuất bản trong chương này.

05Availability, Consistency, CAP & Reliability5 bài học

Chưa có bài học được xuất bản trong chương này.

06Load Balancing & Consistent Hashing5 bài học

Chưa có bài học được xuất bản trong chương này.

07Latency, Throughput và Caching7 bài học

Chưa có bài học được xuất bản trong chương này.

08API Gateway, Message Queue & Rate Limiting7 bài học

Chưa có bài học được xuất bản trong chương này.

09Giao thức, DNS, CDN, Proxy & WebSocket5 bài học

Chưa có bài học được xuất bản trong chương này.

10Event-Driven nâng cao, Testing, Security & Distributed Systems9 bài học

Chưa có bài học được xuất bản trong chương này.

11Low-Level Design: OOP, SOLID, UML7 bài học

Chưa có bài học được xuất bản trong chương này.

12Design Patterns5 bài học

Chưa có bài học được xuất bản trong chương này.

13Phỏng vấn System Design & Case Study7 bài học

Chưa có bài học được xuất bản trong chương này.

14Vòng đời thiết kế, ước lượng & tối ưu7 bài học

Chưa có bài học được xuất bản trong chương này.

15Câu hỏi phỏng vấn thường gặp5 bài học

Chưa có bài học được xuất bản trong chương này.

Bạn sẽ học được gì

Chuyển yêu cầu thành giả định, ràng buộc và các câu hỏi cần kiểm chứng khi thiết kế.
Giải thích đánh đổi của index, replication, sharding và lựa chọn data store.
Phân tích tình huống dữ liệu cũ, lỗi queue và giới hạn của rate limiting.
Giải thích vấn đề dual write và mục đích của outbox pattern.
Tổng hợp quyết định kiến trúc thành một bản giải thích có điều kiện áp dụng, giới hạn và phương án thay thế.

Yêu cầu đầu vào

  • Đã biết HTTP, API, SQL và kiến thức System Design nền tảng.
  • Nên có kinh nghiệm xây hoặc đọc backend để liên hệ các tình huống lỗi; không bắt buộc từng vận hành hệ thống quy mô lớn.

Đi từ tên công nghệ đến lý do chọn một thiết kế

Khi cache trả dữ liệu cũ, queue xử lý lặp hoặc database bị chia shard, điều quan trọng là giải thích được nguyên nhân và giới hạn của giải pháp. Khóa nâng cao đặt các quyết định kiến trúc vào những bối cảnh như vậy. Chương trình gồm yêu cầu và ước lượng, khả năng mở rộng, cơ sở dữ liệu, CAP và độ tin cậy, load balancing và consistent hashing, caching, API gateway, message queue và rate limiting, giao thức và CDN, event-driven nâng cao, LLD với SOLID, design patterns và các case study phỏng vấn. Nhiều bài có mô phỏng cho thấy hệ thống thay đổi từng bước khi có lỗi, cùng câu hỏi dự đoán trước khi xem kết quả. Khóa phù hợp khi bạn đã có nền System Design; nếu chưa, hãy học khóa cơ bản trước.

Giảng viên của bạn

Đội ngũ GDev

Biên soạn khóa System Design

4.4 đánh giá107 bài học213 học viên

Đội ngũ GDev biên soạn khóa học bằng tiếng Việt và giữ thuật ngữ kỹ thuật bằng tiếng Anh. Mỗi bài đi từ một tình huống cụ thể đến giải thích, ví dụ và câu hỏi kiểm tra để bạn tự đánh giá mình đã hiểu chưa.

Đánh giá khóa học

4.4140 đánh giá đã duyệt
5
59%
4
25%
3
11%
2
4%
1
0%
Phú Cường

GDev giúp mình luyện trả lời phỏng vấn System Design có cấu trúc hơn.

An Nhiên

Kiến trúc event-driven và microservices gắn với case thực tế, không chỉ sơ đồ đẹp.

Hữu Tài

Nên học System Design cơ bản trước. Khóa nâng cao hợp mid muốn lên senior.

Kiên Trung

HLD/LLD và scale được đào sâu. Phần câu hỏi phỏng vấn cuối khóa rất đáng luyện.

Tuyết Mai

CAP, sharding, cache — giải thích mạch lạc. GDev giữ thuật ngữ tiếng Anh đúng ngành.

My Thanh

Phần cache invalidation có bài kiểm tra sau mỗi chương nên mình nhớ lâu hơn. Khóa này khá hợp để ôn lại trước khi đi phỏng vấn.

Thanh Xuân

Chương nói về rate limiting giúp mình tự tin hơn hẳn khi đi làm. Đáng đồng tiền bát gạo so với thời gian mình bỏ ra. Chỉ tiếc là biết đến khóa này hơi muộn.

Hồng Phước

Chương nói về sharding có mức độ khó tăng dần khá hợp lý. Rất hợp để ôn trước khi apply job mới.

Vinh Nghĩa

Từ distributed system đến microservices quy mô lớn, nội dung có bài kiểm tra sau mỗi chương nên mình nhớ lâu hơn. Mình học xong là áp dụng được luôn vào dự án đang làm. Tuy nhiên, phần cache invalidation hơi nhanh, phải xem lại vài lần mới thấm. Rất hợp để ôn trước khi apply job mới.

Vy Linh

Mảng distributed system có ví dụ khá sát với công việc thực tế. Sẽ quay lại học thêm khóa khác trên nền tảng này.

Câu hỏi thường gặp

Tôi nên học khóa cơ bản trước không?

Nên học trước nếu bạn chưa phân biệt được HLD với LLD, cache, load balancer, queue và replication. Khóa nâng cao cần nền đó để đi sâu vào đánh đổi và điều kiện áp dụng.

Khóa giúp chuẩn bị phỏng vấn như thế nào?

Các phần case study, câu hỏi khái niệm và dự án tổng hợp giúp luyện cách nêu giả định, giải thích quyết định và nhận ra điểm yếu của phương án. Kết quả phỏng vấn còn phụ thuộc kinh nghiệm và quá trình luyện tập.

Số liệu trong các tình huống là số liệu thật của công ty nào?

Số liệu trong bài là số liệu minh họa để bạn tính toán và so sánh phương án, không phải benchmark thực tế. Khi dẫn một hệ thống công khai, bài ghi rõ nguồn.