Xem thêm

Kiến trúc dựa trên sự kiện

Huy Erick
Kiến trúc dựa trên sự kiện (Event-driven architecture - EDA) là một mô hình kiến trúc phần mềm trong đó hệ thống được xây dựng xung quanh các sự kiện. EDA sử dụng sự kiện...

Kiến trúc dựa trên sự kiện (Event-driven architecture - EDA) là một mô hình kiến trúc phần mềm trong đó hệ thống được xây dựng xung quanh các sự kiện. EDA sử dụng sự kiện như là phương tiện giao tiếp giữa các thành phần trong hệ thống.

EDA đơn giản hóa việc quản lý sự phụ thuộc giữa các thành phần của hệ thống và giúp giảm bớt sự ràng buộc. Một sự kiện trong EDA được hiểu là một "thay đổi trạng thái đáng chú ý" của một thành phần. Sự kiện có thể được phát sinh do người dùng, thiết bị phần cứng hoặc chính phần mềm trong một điều kiện nào đó.

Một ví dụ đơn giản của EDA là trong một hệ thống quản lý việc đăng nhập, khi một người dùng đăng nhập thành công, một sự kiện gửi đến hệ thống để chứng thực thông tin người dùng. Các thành phần khác trong hệ thống, như máy chủ web và cơ sở dữ liệu, sẽ lắng nghe sự kiện này và thực hiện các tác vụ liên quan. Qua cách tiếp cận này, các thành phần không cần biết về nhau và chỉ quan tâm đến các sự kiện được định nghĩa ở mức hệ thống.

EDA được sử dụng rộng rãi trong các hệ thống hiện đại và đặc biệt phổ biến trong kiến trúc dịch vụ dựa trên dịch vụ (Service-oriented architecture - SOA). Nó cũng được tích hợp trong các framework phổ biến như Cairngorm và PureMVC.

Sử dụng sự kiện để tách các thành phần

Trong EDA, các thành phần có thể tương tác thông qua sự kiện. Thay vì gọi trực tiếp một thành phần khác, một thành phần có thể gửi một sự kiện đến bộ phân phối sự kiện (event dispatcher). Thành phần khác sẽ lắng nghe sự kiện và thực hiện hành động tương ứng khi sự kiện xảy ra.

Việc sử dụng sự kiện để tương亳 quan giữa các thành phần giúp giảm sự ràng buộc giữa chúng. Cả hai thành phần không cần biết về sự tồn tại của nhau và được decoupling (phụ thuộc nhỏ hơn).

Sử dụng sự kiện để thực hiện các tác vụ bất đồng bộ

Trong một số trường hợp, chúng ta có thể có một công việc mà có thể mất một khoảng thời gian để hoàn thành và không muốn người dùng phải chờ đợi. Trong trường hợp này, chúng ta có thể kích hoạt sự kiện và đưa công việc vào hàng đợi. Công việc sẽ được thực hiện khi hệ thống có đủ tài nguyên để thực hiện nó. Sử dụng sự kiện trong trường hợp này giúp giảm độ trễ và không ảnh hưởng đến người dùng.

Sử dụng sự kiện để lưu trữ các thay đổi

Trong EDA, chúng ta có thể sử dụng sự kiện để lưu trữ dữ liệu thay đổi của các thực thể. Thay vì chỉ lưu trạng thái cuối cùng của một thực thể, chúng ta lưu trữ tất cả các sự kiện liên quan đến thay đổi trạng thái của thực thể đó. Khi cần trạng thái hiện tại của một thực thể, chúng ta tính toán nó từ tất cả các sự kiện đã xảy ra.

Sử dụng sự kiện để lưu trữ các thay đổi giúp chúng ta có thể tái tạo lại các trạng thái trong quá khứ và có được thông tin về lịch sử của dữ liệu. Điều này cũng giúp chúng ta dễ dàng kiểm tra và theo dõi các thay đổi trong hệ thống.


EDA là một mô hình kiến trúc phần mềm mạnh mẽ và linh hoạt. Nó giúp giảm sự ràng buộc giữa các thành phần, tăng tính linh hoạt và dễ bảo trì của hệ thống. Bằng cách sử dụng sự kiện, chúng ta có thể tăng hiệu suất và tải trọng của hệ thống, cũng như lưu trữ và theo dõi lịch sử của dữ liệu.

Tuy nhiên, việc sử dụng EDA cần được thực hiện một cách cẩn thận và cân nhắc. Chúng ta chỉ nên áp dụng nó trong những tình huống cụ thể và khi nó mang lại lợi ích cho hệ thống.

1