Skip to content
Java · Spring Boot · Mô phỏng hạ tầng ngân hàng

Banking & Fintech SystemsCore Banking & Interbank Payment Gateway

Hai hệ thống mô phỏng hạ tầng ngân hàng bằng Java/Spring: Double-Entry Core Banking Ledger & ISO 20022 Interbank Payment Gateway

Tổng quan ​

Đây là hai hệ thống mô phỏng nghiệp vụ ngân hàng lõi, xây dựng bằng Java/Spring Boot theo lộ trình 3-6 tháng. Mỗi hệ thống tập trung vào một nhóm vấn đề kỹ thuật riêng:

  1. Toàn vẹn dữ liệu tài chính: sổ cái kế toán kép bất biến (double-entry, append-only), đảm bảo Debit = Credit ở mọi giao dịch, kiểm soát xung đột trên tài khoản nóng.
  2. Giao dịch phân tán: điều phối giao dịch liên ngân hàng bằng Saga Orchestration thay vì 2PC, xử lý idempotency và compensating transaction khi một bước thất bại.
  3. Chuẩn hóa thông điệp tài chính: parse & validate message ISO 20022 (pain.001, pacs.008), quyết toán cuối ngày theo batch.

Core Banking System đã hoàn thành Giai đoạn 1 (45/45 test pass trên PostgreSQL và Oracle, kiểm chứng chống overdraft qua 3 Pod Kubernetes). Payment Gateway là giai đoạn tiếp theo. Tiến độ chi tiết tại Trạng thái dự án và Devlog.


Sơ đồ tổng thể 2 Sub-Project ​

Tổng quan 2 sub-projectPayment Gateway (Giai đoạn 2, chưa bắt đầu) sẽ gọi Core Banking (Giai đoạn 1, hoàn thành) qua REST nội bộ kèm Idempotency-Key.A · Payment GatewayGiai đoạn 2 — chưa bắt đầupain.001 / pacs.008 (ISO 20022)Saga Orchestrator + bù trừEOD Settlement (Spring Batch)Retry / dead-letterB · Core BankingGiai đoạn 1 — hoàn thànhDouble-entry ledger, Nợ = CóPessimistic lock chống overdraftOutbox + Kafka, Redis cachePostgreSQL / Oracle · K8sREST nội bộ+ Idempotency-Key(Giai đoạn 3)

Sub-project A: Interbank Payment Gateway

  • Message parsing & validation cho pain.001 / pacs.008
  • Saga Orchestrator — điều phối & bù trừ giao dịch phân tán
  • EOD Batch Settlement — Spring Batch, chunk-oriented
  • Exception/ops handling — retry, dead-letter

Gọi sang Core Banking qua Internal REST, kèm header Idempotency-Key:

Sub-project B: Core Banking System

  • Account Service — quản lý tài khoản, số dư tính động từ ledger
  • Ledger Service + Transaction aggregate root — sổ cái double-entry (append-only), đảm bảo Debit = Credit
  • Concurrency Guard — Pessimistic Lock (SELECT ... FOR UPDATE), verify qua 3 Pod K8s
  • Outbox Pattern + Kafka, Redis cache, chạy song song PostgreSQL/Oracle

Payment Gateway gọi vào Core Banking để cập nhật số dư thực tế (tích hợp ở Giai đoạn 3).


So sánh nhanh 2 Sub-Project ​

Tiêu chíSub-project B: Core Banking SystemSub-project A: Payment Gateway
Nghiệp vụ cốt lõiQuản lý tài khoản, ghi sổ cái kế toán képChuyển tiền liên ngân hàng, định dạng ISO 20022
Thử thách lớn nhấtXung đột đồng thời (race condition) & toàn vẹn dữ liệuPhân tán trạng thái & xử lý lỗi ngoại lệ (Saga)
Mô hình giao dịchStrong Consistency (ACID + DB locks)Eventual Consistency (Saga Orchestration)
Xử lý Batch—EOD Settlement bằng Spring Batch (chunk-oriented)
Bảo mậtSpring Security (Giai đoạn 3)Spring Security (Giai đoạn 3)

Simulated Banking & Fintech Systems — Java & Spring Boot