# Hiểu hệ thống vận hành thế nào, bằng cách tự tay thử

> Bài học miễn phí về thiết kế hệ thống, công nghệ và AI, có mô phỏng chạy được, bảng chọn theo tình huống, code mẫu và prompt để giao việc cho AI.

Bài học ngắn về thiết kế hệ thống, công nghệ và AI. Kéo thanh trượt, làm thử cho hỏng, xem vì sao, rồi mang về code chạy được và mẫu prompt để giao việc cho AI.

## Xử lý dữ liệu: batch và stream

Từ hai cách xử lý là gì, qua cửa sổ thời gian và công cụ, tới một pipeline chạy được với chi phí vài đô.

- [Batch và stream là gì? Hiểu nhanh qua một mô phỏng](https://learn.chabulab.com/vi/system-design/batch-va-stream-la-gi.md): Batch gom dữ liệu rồi xử lý một lần, stream xử lý ngay khi dữ liệu đến. Tự chạy mô phỏng để thấy cái giá của mỗi cách, kèm bảng so sánh và ví dụ thực tế.
- [Nên chọn batch hay stream cho bài toán của bạn?](https://learn.chabulab.com/vi/system-design/chon-batch-hay-stream.md): Chọn một bài toán thực tế để xem nên dùng batch, stream hay kết hợp cả hai và vì sao. Kèm quy tắc chọn nhanh và hai kiến trúc Lambda, Kappa.
- [Cửa sổ thời gian, event time và dữ liệu đến trễ trong stream](https://learn.chabulab.com/vi/system-design/cua-so-thoi-gian-va-du-lieu-den-tre.md): Dòng dữ liệu vô hạn không thể cộng tổng một lần. Xem demo cửa sổ cố định, trượt và phiên, rồi hiểu event time, watermark và cách tránh xử lý trùng.
- [Công nghệ xử lý dữ liệu: chọn gì theo ngôn ngữ và cloud](https://learn.chabulab.com/vi/system-design/cong-nghe-xu-ly-du-lieu.md): Spark, Flink, Kafka, Airflow và các dịch vụ trên Cloudflare, AWS, Google Cloud, Azure làm gì. Chọn theo ba lớp: tiêu chuẩn ngành, cloud, ngôn ngữ.
- [Dựng pipeline xử lý dữ liệu rẻ bằng TypeScript trên Cloudflare, AWS](https://learn.chabulab.com/vi/system-design/dung-nhanh-re-xu-ly-du-lieu-bang-typescript.md): Nhận đơn, xử lý theo lô nhỏ và tổng hợp mỗi đêm chỉ trong một Worker. Kèm bảng giá theo cấp, mẫu cho AWS và prompt để giao việc này cho AI.
- [Dựng pipeline batch bằng Spark và stream bằng Kafka, Flink](https://learn.chabulab.com/vi/system-design/dung-pipeline-spark-flink.md): Các bước dựng một pipeline batch với PySpark, Airflow và một pipeline stream với Kafka, Flink SQL, kèm code mẫu, cách chạy lại an toàn và lộ trình học tiếp.

- [Rate limiting là gì? Cửa sổ cố định, cửa sổ trượt và xô token](https://learn.chabulab.com/vi/system-design/gioi-han-toc-do-rate-limiting.md): Ba cách từ chối request khi khách gửi quá nhiều. Chạy cả ba trên cùng một luồng request, xem cách nào để lọt cú dồn, rồi trả mã 429 cho đúng.
