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 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 · 9 phút · Lê Tuấn Anh

GraphHopper Distance Matrix: Triển khai Routing Engine

🇬🇧 Read the English version of this article on tanhdev.com GraphHopper Distance Matrix Là Gi? Answer-first: GraphHopper distance matrix là API endpoint /matrix thuộc thư viện định tuyến mã nguồn mở (open-source routing engine) GraphHopper. Nó tiếp nhận thông tin tọa độ của N điểm trạm và trả về một ma trận kết quả kích cỡ N×N chứa toàn bộ dữ liệu thời gian di chuyển (tính theo giây) và độ dài khoảng cách (tính theo mét) dựa trên mạng lưới giao thông thực tế được cung cấp bởi bản đồ OpenStreetMap — hoàn toàn miễn phí khi bạn chọn cách tự triển khai (self-hosted). Với quy mô 100 điểm dừng giao hàng (delivery stops), cỗ máy này dễ dàng xử lý toàn bộ 10,000 cặp lộ trình chỉ trong khoảng thời gian dưới 50 mili-giây (50ms) ngay trên một máy chủ VPS thông thường. ...

11 tháng 6, 2026 · 18 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