Saga Pattern Là Gì? Giao Dịch Phân Tán Với Temporal & Go

Saga Pattern Là Gì? Giao Dịch Phân Tán Với Temporal & Go

🇬🇧 Read the English version on tanhdev.com ← Chương trước: Thiết Kế API Lũy Đẳng (Idempotent API) — Khóa Lũy Đẳng, Middleware SetNX & Mẫu Stripe | Mục lục Series | Chương tiếp theo: Băm Nhất Quán (Consistent Hashing) — Node Ảo, Phương Sai Tải & Vòng CRC32 Trong Go → Answer-first: Saga Pattern là mô hình quản lý giao dịch phân tán trong microservices bằng cách chia nhỏ thành chuỗi giao dịch cục bộ (local transactions). Khi một bước thất bại, hệ thống tự động kích hoạt chuỗi hành động bù trừ (compensating transactions) theo thứ tự ngược LIFO để khôi phục tính nhất quán cuối cùng mà không cần dùng khóa phân tán 2PC. ...

18 tháng 6, 2026 · 11 phút · Lê Tuấn Anh
Phần 7: Giai đoạn 2 — Ghi Kép (Dual-Write): Dapr PubSub + Xử lý

Phần 7: Giai đoạn 2 — Ghi Kép (Dual-Write): Dapr PubSub + Xử lý

← Chương trước: Phần 6: Giai Đoạn 1 — Strangler Fig Read-Only | Mục lục Series | Chương tiếp theo: Phần 8: Giai Đoạn 3 — Full Cutover Zero Downtime → Answer-first: Giai đoạn 2 kích hoạt API ghi trên hệ thống Go microservice song song với Magento nhờ cơ chế Dual-Write bất đồng bộ qua Dapr Pub/Sub và Transactional Outbox, có cờ tính năng (feature flags) và phân xử xung đột dữ liệu tự động. ...

20 tháng 5, 2026 · 15 phút · Lê Tuấn Anh
Phần 9: Transactional Outbox & Saga đảm bảo giao sự kiện

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

← Chương trước: Phần 8: Giai Đoạn 3 — Full Cutover Zero Downtime | Mục lục Series | Chương tiếp theo: Phần 10: 24 Quyết Định Kiến Trúc (ADRs) → Answer-first: Xử lý giao dịch phân tán khi khách hàng đặt hàng bằng cách kết hợp Transactional Outbox pattern trong PostgreSQL và Saga Choreography qua Dapr Pub/Sub, đảm bảo tính nhất quán cuối cùng giữa Giỏ hàng, Đơn hàng, Thanh toán và Kho vận. ...

3 tháng 6, 2026 · 18 phút · Lê Tuấn Anh
Kiến trúc Microservices Ngân hàng với Go: Mẫu Saga, event sourcing, và sổ cái phân tán

Kiến trúc Microservices Ngân hàng: Go, Saga & Event Sourcing

Answer-first: Kiến trúc Banking Microservices với Golang áp dụng Sổ cái kép (Double-Entry Ledger), Event Sourcing và Orchestrated Saga Pattern qua Dapr/Temporal. Đảm bảo toàn vẹn giao dịch tài chính ACID ở cấp độ nghiệp vụ, cách ly tài khoản nguồn-đích và xử lý bù trừ tự động khi phát sinh sự cố mạng. 🇬🇧 Read the English version of this article on tanhdev.com 1. Giới thiệu: Phá vỡ Core Banking truyền thống Trả lời nhanh: Một kiến trúc microservices ngân hàng hiện đại sẽ thay thế các sổ cái nguyên khối cũ (như T24 hoặc Flexcube) bằng cách sử dụng Go để định tuyến giao dịch với thông lượng cao. Hệ thống đạt được tính nhất quán phân tán mà không cần dùng two-phase commit (2PC) bằng cách kết hợp Event Sourcing (luồng sự kiện bất biến của sổ cái), Điều phối Saga (dùng Temporal hoặc Dapr), mẫu Transactional Outbox và ràng buộc unique của PostgreSQL để đảm bảo API luôn idempotent. ...

1 tháng 6, 2026 · 18 phút · Lê Tuấn Anh