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

Orchestrated Saga Pattern Với Temporal Go SDK Trong FinTech Microservices

📌 Thông Báo Chuyển Hướng / Consolidation: Bài viết này đã được hợp nhất và mở rộng đầy đủ phiên bản kiến trúc 2026 tại: 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 Nỗi Đau của Giao Dịch Phân Tán trong Hệ Thống Core Banking Trong kiến trúc Monolith nguyên khối truyền thống, việc đảm bảo tính ACID (Atomicity, Consistency, Isolation, Durability) của một giao dịch tài chính cực kỳ đơn giản. Bạn chỉ cần mở một Database Transaction, thực thi hàng loạt câu lệnh SQL (trừ tiền tài khoản A, cộng tiền tài khoản B, ghi log kiểm toán), và cuối cùng gọi COMMIT. Nếu có bất kỳ lỗi gì xảy ra giữa chừng, bạn gọi ROLLBACK, và database engine sẽ tự động hoàn tác mọi thứ về trạng thái nguyên sơ ban đầu một cách hoàn hảo. ...

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

Mô Hình Saga (Saga Pattern) Trong Go — Orchestration Với Temporal & Transactional Outbox

Điều kiện tiên quyết: Đây là Phần 8 của Khóa Học System Design. Bạn nên tham khảo lại Phần 7: Thiết Kế API Kháng Lặp trước khi tìm hiểu sâu — các thao tác hoàn trả (compensating transactions) trong mô hình Saga bắt buộc phải đảm bảo tính kháng lặp (idempotency). Answer-first: Trong kiến trúc microservices và AI-Native phân tán 2026, mô hình Saga (Saga Pattern) giải quyết bài toán quản lý giao dịch phân tán (distributed transactions) xuyên suốt nhiều microservices bằng cách chia nhỏ một giao dịch lớn thành một chuỗi các giao dịch cục bộ (local transactions). Khi một bước trong chuỗi gặp sự cố, hệ thống tự động kích hoạt chuỗi các hành động hoàn trả (compensating transactions) theo thứ tự ngược lại (reverse LIFO order) để khôi phục trạng thái nhất quán của toàn bộ hệ thống. ...

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

Kiến trúc Composable Banking: Từ Monolith đến Modular Core

🇬🇧 Read the English version of this article on tanhdev.com Answer-first: Cách các ngân hàng thay thế core banking nguyên khối (Temenos, Finacle) bằng kiến trúc composable banking (ngân hàng cấu thành) thông qua việc sử dụng Go microservices, điều phối Saga (Saga orchestration), NewSQL ledgers và mô hình Strangler Fig. Các hệ thống core banking cũ (legacy) được thiết kế trong một thời đại khác. Temenos T24, Finacle và Flexcube đều chia sẻ một giả định chung mang tính quyết định: toàn bộ danh mục sản phẩm của ngân hàng — tiền gửi (deposits), cho vay (lending), thanh toán (payments), tài trợ thương mại (trade finance) — sẽ nằm bên trong một ứng dụng được liên kết chặt chẽ (tightly coupled) duy nhất và một database dùng chung duy nhất. Giả định đó có thể đúng khi ngành ngân hàng di chuyển với tốc độ của con người. Nhưng nó hoàn toàn sụp đổ khi các chu kỳ release (phát hành sản phẩm) cần phải rút ngắn từ vài tháng xuống vài ngày, khi việc cập nhật một engine chống gian lận (fraud engine) không được phép gây rủi ro ngừng hoạt động (outage) cho hệ thống thanh toán, và khi các kỹ sư đang làm việc trên nền codebase COBOL nghỉ hưu nhanh hơn tốc độ họ có thể được thay thế. ...

10 tháng 6, 2026 · 33 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

🇬🇧 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