EventBridge là gì?
Amazon EventBridge (tên cũ: CloudWatch Events) là dịch vụ serverless event bus do AWS cung cấp, cho phép xây dựng Event-driven Architecture. EventBridge giúp kết nối các sự kiện từ:
- Dịch vụ AWS (S3, EC2, RDS, Lambda, CloudTrail, v.v.)
- Ứng dụng SaaS bên thứ ba (Zendesk, Shopify, Datadog, v.v.)
- Ứng dụng tự phát triển
Thông qua EventBridge, các sự kiện có thể được lọc, định tuyến và xử lý bởi nhiều dịch vụ khác nhau mà không cần viết nhiều logic tích hợp thủ công.
Cách dễ hiểu: EventBridge là trung tâm phân phối sự kiện (event router) trong AWS.
Kiến trúc của EventBridge
1. Phương thức process và deliver events
EventBridge cung cấp các cách thức để process và deliver events như sau:
Event Bus
- Là trung tâm tiếp nhận và phân phối sự kiện.
- Có 3 loại:
- Default event bus: tự động nhận sự kiện từ dịch vụ AWS.
- Custom event bus: dành cho ứng dụng riêng.
- Partner event bus: nhận sự kiện từ ứng dụng SaaS.
EventBridge Pipes
- Pipes (ra mắt 2022) giúp kết nối trực tiếp giữa nguồn sự kiện (event source) và target.
- Khác với Event Bus:
- Bus = publish/subscribe (1 event → nhiều target).
- Pipes = point-to-point (1 event → 1 target, có thể enrich).
EventBridge Scheduler
- Scheduler giúp lên lịch gửi sự kiện định kỳ (cron job).
- Là phần mở rộng của cơ chế tạo trên Rule của Event Bus.
EventBridge Scheduler ra mắt năm 2022, giúp tạo các công việc định kỳ (cron job) dễ dàng hơn so với việc sử dụng Lambda hoặc EC2. Nó dùng để thay thế và mở rộng Scheduled Rule.
2. Events
- Là thông điệp mô tả sự kiện đã xảy ra.
- Thường có dạng JSON, ví dụ:
{ "source": "aws.ec2", "detail-type": "EC2 Instance State-change Notification", "detail": { "instance-id": "i-1234567890abcdef0", "state": "stopped" } }
3. Rules
- Định nghĩa cách xử lý sự kiện.
- Lọc sự kiện dựa trên pattern và định tuyến đến các target.
- Có thể có nhiều rule trên một event bus.
4. Targets
- Là dịch vụ nhận và xử lý sự kiện.
- Hỗ trợ nhiều dịch vụ AWS như Lambda, SNS, SQS, Step Functions, Kinesis, EC2, ECS, API Gateway, EventBridge itself, v.v.
- Có thể cấu hình nhiều target cho một rule.
5. Event Sources
- Nơi phát sinh sự kiện.
- Bao gồm dịch vụ AWS, ứng dụng SaaS, hoặc ứng dụng tự phát triển thông qua API.
EventBridge hoạt động dựa trên kiến trúc publish-subscribe (pub/sub), giúp tách rời nguồn phát sinh sự kiện và dịch vụ xử lý, tăng tính linh hoạt và mở rộng.
Schema trong EventBridge là gì
Schema sẽ định nghĩa cấu trúc của Event (tên field, kiểu dữ liệu, format JSON). Mục đích:
- Producer và Consumer hiểu chung 1 ngôn ngữ.
- Giúp viết code xử lý event dễ dàng hơn.
Schema Registry trong EventBridge
Schema Registry là nơi lưu trữ và quản lý schema cho events.
Mục đích:
- Quản lý version của schema.
- Chia sẻ schema giữa các team.
- Tự động generate code từ schema.
- Có thể tự động generate code từ schema.
- Hỗ trợ nhiều ngôn ngữ như Java, Python, TypeScript, v.v.