Tăng cường hệ thống với Event Sourcing và CQRS

SonetOps 22/09/2025
Chia sẻ:

Tăng cường hệ thống với Event SourcingCQRS

Event Sourcing (ES)CQRS là bộ đôi kiến trúc mạnh mẽ, thay thế CRUD truyền thống, mang lại khả năng kiểm toán, mở rộng và linh hoạt cho các hệ thống phức tạp. Bài viết này giới thiệu cách áp dụng ES/CQRS trong DevOps và ví dụ thực tiễn.

ESCQRS là gì?

Event Sourcing lưu trữ mọi thay đổi dưới dạng sự kiện (events) thay vì trạng thái hiện tại. CQRS tách biệt xử lý lệnh (Command) và truy vấn (Query), tối ưu hóa hiệu suất cho cả ghi và đọc dữ liệuES/CQRS Workflow

CQRS + Event Sourcing – Step by Step | Learn CQRS and Event Sourcing

Hình 1: Quy trình xử lý trong ES/CQRS

Tại sao cần ES/CQRS?

  • Kiểm toán: Lưu lịch sử đầy đủ, không thể thay đổi.
  • Mở rộng: Tách biệt luồng ghi và đọc để scale độc lập.
  • Linh hoạt: Tạo nhiều mô hình đọc từ cùng dữ liệu sự kiện.

Triển khai ES/CQRS trong E-commerce

Ví dụ xử lý đơn hàng:

# Command: Đặt hàng
class PlaceOrderCommand:
    order_id: str
    customer_id: str
    items: list

# Event: Đơn hàng đã đặt
class OrderPlacedEvent:
    order_id: str
    customer_id: str
    items: list
    timestamp: str

Quy trình:

  1. Command PlaceOrder tạo OrderPlacedEvent.
  2. Lưu event vào Event Store.
  3. Event Bus (Kafka) gửi event.
  4. Projection Service cập nhật Read Model.
  5. Query đọc trạng thái từ Read Model.

 

 

So sánh ES/CQRS với CRUD

Tính năng ES/CQRS CRUD
Kiểm toán Lưu lịch sử sự kiện Chỉ lưu trạng thái hiện tại
Mở rộng Scale độc lập Khó tách biệt
Độ phức tạp Cao hơn Đơn giản

Kết luận

Event SourcingCQRS là giải pháp mạnh mẽ cho các hệ thống phức tạp, đặc biệt trong DevOps và ứng dụng tài chính, thương mại điện tử. Hãy khám phá Kafka và thiết kế sự kiện để triển khai hiệu quả! Xem thêm tại martinfowler.com.

Bài viết liên quan