Khóa học này cung cấp cái nhìn toàn diện về Kiến trúc Điều khiển Bởi Sự Kiện (Event-Driven Architecture – EDA), một phương pháp kiến trúc hiện đại trong thiết kế hệ thống phân tán. Khóa học sẽ giúp học viên hiểu rõ về cấu trúc EDA, từ các thành phần cơ bản như Event, Event Producer, Event Broker, và Event Consumer, đến các công cụ phổ biến như Apache Kafka và RabbitMQ. Ngoài ra, khóa học còn đi sâu vào các kỹ thuật quan trọng như Event Sourcing, Event Sink và thiết kế luồng xử lý dữ liệu end-to-end.
Khóa học giúp học viên:
- Hiểu rõ nguyên tắc và khái niệm cốt lõi của EDA và cách EDA khác biệt so với các kiến trúc khác như Monolithic và Microservices.
- Nắm bắt vai trò và cách thức hoạt động của các thành phần chính trong EDA.
- Thực hành triển khai các công cụ và công nghệ phổ biến như Apache Kafka, RabbitMQ, Pulsar, Kinesis, và NATS trong kiến trúc EDA.
- Ứng dụng các kỹ thuật Event Sourcing, Event Sink, và thiết kế luồng xử lý dữ liệu để xây dựng một hệ thống điều khiển bởi sự kiện từ đầu đến cuối.
- Phát triển kỹ năng thiết kế hệ thống EDA và sử dụng mô hình The Four Dimensions of Event Design để thiết kế sự kiện hiệu quả.
Khóa học này phù hợp với:
- Kỹ sư phần mềm và lập trình viên muốn xây dựng và triển khai các hệ thống phân tán sử dụng EDA.
- Kỹ sư hệ thống và kiến trúc sư công nghệ thông tin quan tâm đến việc phát triển kiến trúc điều khiển bởi sự kiện.
- Nhà quản lý dự án hoặc nhà phát triển sản phẩm muốn hiểu rõ hơn về các hệ thống dựa trên sự kiện và tiềm năng ứng dụng EDA vào sản phẩm của mình.
- Các chuyên gia DevOps và Data Engineer mong muốn nâng cao kỹ năng quản lý và xử lý dữ liệu theo sự kiện.
- Có hiểu biết cơ bản về lập trình và hệ thống phân tán.
- Kiến thức về kiến trúc phần mềm (đặc biệt là kiến trúc Microservices) là một lợi thế.
- Kinh nghiệm làm việc với các công cụ như Kafka, RabbitMQ hoặc các hệ thống message broker khác sẽ hữu ích, nhưng không bắt buộc.
Phần I: Giới thiệu về Event-Driven Architecture (EDA)
- Bài 1: Hiểu về EDA
- Định nghĩa và các khái niệm cơ bản
- So sánh với các kiến trúc khác (Monolithic, Microservices)
- Ưu điểm và nhược điểm của EDA
- Các trường hợp sử dụng phù hợp
- Bài 2: Thành phần chính trong EDA
- Event: Định nghĩa, các loại event, cấu trúc event
- Event producer: Các công cụ và cách thức tạo event
- Event broker: Vai trò, các loại broker phổ biến
- Event consumer: Các công cụ và cách thức tiêu thụ event
Thực hành
Phần II: Các công cụ và nền tảng
- Bài 3: Apache Kafka
- Giới thiệu về Kafka
- Kiến trúc và các thành phần chính
- Ứng dụng Kafka trong EDA
- So sánh Kafka với các hệ thống message broker khác
- Bài 4: RabbitMQ
- Giới thiệu về RabbitMQ
- Kiến trúc và các thành phần chính
- Ứng dụng RabbitMQ trong EDA
- So sánh RabbitMQ với Kafka
- Bài 5: Các công cụ và công nghệ khác
Thực hành
Phần III: Các khái niệm và kỹ thuật cốt lõi
- Bài 6: Đẩy event (Event Sourcing)
- Khái niệm Event Sourcing
- Ưu điểm và nhược điểm
- Áp dụng Event Sourcing trong thực tế
- Bài 7: Lưu trữ event
- Các lựa chọn lưu trữ event (Kafka, database,…)
- Thiết kế schema cho event
- Quản lý vòng đời của event
- Bài 8: Xử lý event
- Các mô hình xử lý event (stream processing, batch processing)
- Công cụ xử lý event (Flink, Spark,…)
- Xử lý event thời gian thực và không thời gian thực
- Bài 9: Event sourcing và sink
- Khái niệm event sink
- Các loại event sink phổ biến
- Thiết kế hệ thống event sourcing và sink
Thực hành
Phần IV: Xây dựng luồng xử lý dữ liệu event end-to-end
- Bài 10: Thiết kế luồng xử lý event
- Xác định các event cần xử lý
- Xây dựng sơ đồ luồng xử lý
- Xác định các thành phần cần thiết
- Bài 11: Thực hành xây dựng luồng xử lý event
- Sử dụng các công cụ để xây dựng luồng
- Cài đặt và cấu hình hệ thống
- Viết code xử lý event
- Bài 12: Kiểm thử và tối ưu hóa
- Kiểm thử luồng xử lý
- Đánh giá hiệu suất
- Tối ưu hóa luồng xử lý
Thực hành
Phần V: Mô hình dữ liệu The Four Dimensions of Event Design
- Bài 13: Giới thiệu về mô hình
- Các chiều của mô hình
- Ứng dụng của mô hình trong thiết kế event
- Bài 14: Áp dụng mô hình vào thực tế
- Phân tích các trường hợp sử dụng
- Thiết kế event dựa trên mô hình
Thực hành
Phần VI: Thực hành và dự án
- Bài 15: Dự án thực tế
- Xây dựng một hệ thống event-driven đơn giản
- Áp dụng các kiến thức đã học
- Bài 16: Thảo luận và ôn tập, tổng kết