Thiết kế một hệ thống quy mô lớn đòi hỏi kết hợp nhiều khái niệm — xử lý quy mô khổng lồ, chọn kiến trúc, database, caching phù hợp, và quản lý các trade-off. Dùng một ví dụ cụ thể (một social media feed) minh họa cách các mảnh ghép kết hợp với nhau.
Ví dụ: một social media news feed
Yêu cầu: hàng triệu user; đăng nội dung; xem feed của các bài đăng từ user đang theo dõi;
NẶNG ĐỌC (lượt xem feed nhiều hơn rất nhiều so với bài đăng); latency thấp; high availability.
Các thành phần tổng thể:
→ CLIENTS → LOAD BALANCER → APPLICATION server (stateless, scale ngang)
→ DATABASES → dữ liệu user/post (sharded); một graph các quan hệ follow
→ CACHING (Redis) → feed nóng, post, dữ liệu user (then chốt cho tải nặng đọc)
→ CDN → media (ảnh/video)
→ MESSAGE QUEUES → công việc async (fan-out, thông báo)
