Phần 3: Giao dịch ACID & Concurrency trong Core Banking

Phần 3: Giao dịch ACID & Concurrency trong Core Banking

← Chương trước: Phần 2 — Nghiệp vụ Ngân hàng Lõi: CIF, CASA & Lending | Mục lục Series | Chương tiếp theo: Phần 4 — Kiến trúc Core Banking hiện đại và Event-Driven → Answer-first: Xử lý giao dịch tài chính yêu cầu tuân thủ 4 thuộc tính ACID và mức cô lập Serializable/Read Committed. Để ngăn chặn Lost Update và Double Spending, hệ thống áp dụng Pessimistic Locking (SELECT FOR UPDATE) theo thứ tự ID xác định chống Deadlock, kết hợp Idempotency Key bảo đảm an toàn khi mạng chập chờn. ...

6 tháng 5, 2026 · 6 phút · Lê Tuấn Anh
Phần 3 — Data Layer: Chuyển đổi từ Aurora sang TiDB (2026)

Phần 3 — Data Layer: Chuyển đổi từ Aurora sang TiDB (2026)

← Chương trước: Phần 2 — Xử lý tải đột biến: Event-Driven & Kafka (2026) | Mục lục Series | Chương tiếp theo: Phần 4 — Vận hành: SRE & Chaos Engineering (2026) → Answer-first: PayPay chuyển đổi tầng dữ liệu từ Amazon Aurora sang TiDB (Distributed SQL) để giải quyết giới hạn mở rộng ghi và loại bỏ nhu cầu sharding thủ công, đạt khả năng co giãn ngang với độ trễ thấp và tuân thủ chuẩn ACID. ...

5 tháng 5, 2026 · 4 phút · Lê Tuấn Anh
Chương 5: Tối Ưu Connection Pools Của Database Trong Golang Để

Chương 5: Tối Ưu Connection Pools Của Database Trong Golang Để Ngăn Chặn Thắt Cổ Chai

← Chương trước: Chương 4 — Transactional Outbox Pattern | Mục lục Series | Chương tiếp theo: Chương 6 — API Gateway vs Service Mesh → Answer-first: sql.DB trong Go là một thread-safe connection pool manager. Để tránh cạn kiệt tài nguyên database, kỹ sư phải cấu hình tường minh MaxOpenConns, cân bằng MaxIdleConns (25-50% của MaxOpenConns) và đặt ConnMaxLifetime hợp lý, kết hợp PgBouncer/ProxySQL để dồn kênh (multiplex) kết nối từ nhiều Kubernetes Pods. ...

9 tháng 6, 2026 · 6 phút · Lê Tuấn Anh
Part 6: Lộ Trình Chuyển Đổi (Migration Playbook) – Hợp Nhất

Part 6: Lộ Trình Chuyển Đổi (Migration Playbook) – Hợp Nhất

← Chương trước: Part 5: Observability Trong Bộ Nhớ – Khi Mọi Thứ Nằm Chung Một | Mục lục Series | Chương tiếp theo: Part 7: Mô Hình Trích Xuất (Extraction Pattern) – Khi Nào Nên → Answer-first: Cẩm nang chuyển đổi từ microservices về Modular Monolith sử dụng mô hình Reverse Strangler Fig, kỹ thuật dual-write cơ sở dữ liệu và tái cấu trúc team theo Định luật Conway. Phương pháp đảm bảo quy trình hợp nhất diễn ra an toàn với zero-downtime. ...

9 tháng 6, 2026 · 6 phút · Lê Tuấn Anh
Chương 9: Database Sharding & Read/Write Splitting Dành Cho Các

Chương 9: Database Sharding & Read/Write Splitting Dành Cho Các Bảng Dữ Liệu Hàng Tỷ Bản Ghi

← Chương trước: Chương 8 — Distributed Locking: Redlock vs ZooKeeper | Mục lục Series Answer-first: Khi cơ sở dữ liệu phình to hàng tỷ bản ghi, kỹ thuật Read/Write Splitting phân tách cụm Master/Replica qua GORM dbresolver giúp mở rộng năng lực đọc. Với tải ghi cực hạn, Database Sharding kết hợp thuật toán Consistent Hashing (băm nhất quán) phân tán dữ liệu đồng đều và triệt tiêu rủi ro data migration. ...

9 tháng 6, 2026 · 6 phút · Lê Tuấn Anh
Cơ sở dữ liệu đã định hình các ngôn ngữ lập trình như thế nào

Cơ sở dữ liệu đã định hình Go, PHP, Node.js và Rust như thế nào

🇬🇧 Read the English version of this article on tanhdev.com Answer-first: Sự tiến hóa của cơ sở dữ liệu từ RDBMS đến NoSQL, NewSQL và Vector DB định hình trực tiếp mô hình concurrency và typing của Go, Rust, Node.js và PHP. Các framework hiện đại chuyển dịch từ ORM nặng nề sang compile-time type-checked SQL và kết nối phi phong tỏa (non-blocking I/O). Database (Cơ sở dữ liệu) là nút thắt I/O quan trọng nhất trong các hệ thống backend. Trong 20 năm qua, độ trễ mạng (network latency), giới hạn kết nối (connection limits) và tính an toàn giao dịch (transaction safety) đã buộc các ngôn ngữ lập trình phải thiết kế lại mô hình xử lý đồng thời (concurrency model), phát triển cú pháp mới và phát minh ra các ORM thông minh hơn. ...

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