Docs học tập
Backend nền tảng

E4 · Saga Pattern

Transaction phân tán xuyên microservices qua chuỗi bước local + compensating transaction khi lỗi.

E4 · Nâng cao

Đặt tour du lịch: đặt vé máy bay → khách sạn → xe. Nếu khách sạn hết phòng thì hủy vé máy bay đã đặt (bù trừ), thay vì khóa tất cả cùng lúc.

Cốt lõi

  • Transaction phân tán xuyên microservices qua chuỗi bước local + compensating transaction khi lỗi.
  • Choreography: các service tự phản ứng qua event. Orchestration: có một orchestrator điều phối.

Đánh đổi

Thay 2PC (chậm, khóa lâu) trong microservices; đổi lại chỉ đạt eventual consistency.

Trong thực tế

Order → Payment → Inventory; Saga đặt chuyến của Uber.

Bug thường gặp

Bước bù trừ (hoàn tiền) lỗi mà không có retry → đơn đã hủy nhưng tiền không được hoàn.

Tự hỏi lại

Khi nào chọn Orchestration thay vì Choreography?

On this page