Phần 9: Transactional Outbox & Saga đảm bảo giao sự kiện

Khi một khách hàng bấm nút đặt hàng trên nền tảng Composable Commerce, có tới 7 sự kiện bắt buộc phải diễn ra theo chuỗi vắt ngang qua 4 service hoàn toàn độc lập: Tạo Đơn hàng (Order created) → Duyệt Thanh toán (Payment authorized) → Giữ chỗ Tồn kho (Stock reserved) → Kích hoạt Giao nhận (Fulfillment triggered) → Bắn Thông báo (Notification sent) → Cộng Điểm thưởng (Loyalty points awarded) → Tạo Mã vận đơn (Shipping label generated). Bất kỳ mắc xích nào trong số này cũng có thể đứt. Mạng có thể rớt. Database có thể sập. Một cái cổng thanh toán (payment gateway) của bên thứ ba có thể bị timeout. ...

3 tháng 6, 2026 · 18 phút · Lê Tuấn Anh
Temporal Saga Pattern in Golang Distributed Transactions

Triển khai Giao dịch Phân tán trong Go với Temporal Saga Pattern

🇬🇧 Read the English version of this article on tanhdev.com Trả lời nhanh (Answer-first): Triển khai các giao dịch phân tán trong các Go microservices tài chính (FinTech) sử dụng Temporal Saga Pattern trong Go đảm bảo tính nhất quán cuối cùng (eventual consistency) trên các database độc lập mà không bị ràng buộc chặt hay nguy cơ khóa rào cản (blocking locks) của Two-Phase Commit (2PC). By centralizing orchestration inside Temporal’s fault-tolerant event history engine, developers define linear workflow logic paired with automated compensation functions (saga.AddCompensation). When an activity downstream fails, Temporal executes compensations in strict reverse order, guaranteeing that financial dual-entry invariants ($\sum \text{Debits} = \sum \text{Credits}$) are eventually preserved even across network partitions, node crashes, and activity timeouts. ...

23 tháng 7, 2026 · 24 phút · Lê Tuấn Anh