Skip to content

System design ​

Phỏng vấn system design hỏi “thiết kế hệ thống X”. Không có đáp án duy nhất; người phỏng vấn xem cách bạn làm rõ yêu cầu, ước lượng, chọn thành phần và giải thích đánh đổi.

Cách dùng phần này ​

  1. Đọc Phương pháp để có khung trình bày cho một buổi 45 phút.
  2. Lướt Building blocks: mỗi thành phần có tóm tắt ngắn và link tới trang chuyên sâu (cache, database, Kafka…).
  3. Đọc Latency: cách đo (percentile, fan-out, load test open-loop) và vì sao latency tăng (mạng, hàng đợi, xử lý). Phần này dùng trong mọi bài, nhất là khi trả lời yêu cầu phi chức năng.
  4. Luyện các case study. Mỗi bài tập trung vào một vấn đề khó, ghép lại từ kiến thức ở các phần khác.

Case study ​

BàiVấn đề khó nhất
Đặt vé không trùngHai người không được đặt cùng một chỗ; giữ chỗ có hạn
Flash saleMột dòng tồn kho bị hàng chục nghìn request tranh nhau
ChatKết nối thời gian thực, lưu và phân trang tin nhắn, trạng thái đã đọc
NewsfeedĐẩy bài lúc ghi hay gom lúc đọc; người có hàng triệu follower
URL shortenerSinh mã ngắn, đọc nhiều hơn ghi rất nhiều
Thông báoGửi qua nhiều kênh, không gửi trùng, tôn trọng giờ yên lặng
Thanh toánKhông mất tiền, không trừ trùng, đối soát
Leaderboard & counterXếp hạng và đếm với lượng ghi lớn
Rate limiterĐếm request chính xác giữa nhiều instance, chọn thuật toán