Minsan phiêu lưu kí

Blog chia sẻ kiến thức về Cloud/Data&AI

Architecture Pattern – Kiến trúc hướng sự kiện (Event-driven architecture)

0
(0)

Trong bài này, chúng ta sẽ cùng tìm hiểu kiến trúc hướng sự kiện (Event-driven architecture). Đây là mẫu kiến trúc phần mềm trở thành trào lưu trong những năm trở lại đây nhờ sự loose coupling, xử lý event thời gian thực cùng khả năng phục hồi và dễ dàng tích hợp vào các hệ thống khác nhau.

Kiến trúc hướng sự kiện (Event-driven architecture – EDA) là một mô hình kiến trúc phần mềm trong đó các thành phần hoặc dịch vụ của hệ thống giao tiếp với nhau chủ yếu thông qua việc sản xuất và tiêu thụ các sự kiện.

Các “sự kiện” (event) này có thể là các hành động người dùng, cập nhật dữ liệu, hoặc các thông báo từ các hệ thống khác. EDA giúp tạo ra các hệ thống linh hoạt, mở rộng và dễ tích hợp.

Sau đây là ví dụ về kiến ​​trúc hướng sự kiện cho một trang web thương mại điện tử. Kiến trúc này cho phép trang web phản ứng với các thay đổi từ nhiều nguồn khác nhau trong thời gian nhu cầu cao điểm mà không làm sập ứng dụng hoặc cung cấp quá nhiều tài nguyên.

Cách hoạt động của Meditator topology được mô tả thông qua ví dụ về hệ thống bán lẻ sau:

Ví dụ về meditator trong hệ thống bán lẻ – Nguồn: Fundamentals of Software Architecture – Mark Richards

  • Bước 1: Tạo đơn hàng

Sau khi nhận được event khởi tạo PlaceOrder, Meditator tạo ra event create-order, rồi gửi nó tới order-placement queue. OrderPlacement event processor sẽ nhận event này, xác thực thông tin và tạo order, trả cho Meditator thông báo đã xử lý xong kèm ID của order (acknowledment). Tuỳ vào nghiệp vụ cụ thể, Meditator có thể gửi lại event cho client để thông báo đã tạo order.

  • Bước 2: Xử lý đơn hàng

Meditator tạo và gửi 3 event đồng thời là email-customer, apply-payment và adjust-inventory tới các queue tương ứng là notification, payment và inventory. Meditator cần phải chờ cho các event processor xử lý thành công tất cả event trước khi chuyển sang bước 3.

  • Bước 3: Thực hiện đơn hàng

Tương tự bước 2, các event fulfill-order và order-stock được gửi tới các queue tương ứng là order-fulfillment và warehouse.

  • Bước 4: Giao hàng

Meditator thông báo trạng thái sẵn sàng giao hàng cho khách hàng bằng gửi event email-customer và ship-order tới các queue notification và shipping.

  • Bước 5: Thông báo cho khách hàng

Thông báo cho khách hàng trạng thái đơn hàng qua email bằng event email-custormer.

Kiến trúc hướng sự kiện EDA là một mô hình kiến trúc phần mềm trong đó các thành phần hoặc dịch vụ của hệ thống giao tiếp với nhau chủ yếu thông qua việc sản xuất và tiêu thụ các sự kiện.

EDA đem lại khả năng phản ứng nhanh và linh hoạt, làm tăng hiệu suất xử lý trong các hệ thống phức tạp. Tuy nhiên, việc áp dụng EDA cần cân nhắc kỹ lưỡng về quản lý sự phụ thuộc và đảm bảo tính nhất quán dữ liệu.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

Leave a Reply

Your email address will not be published. Required fields are marked *