Skip to content

Công nghệ sử dụng & Stack kiến trúc ​

[Chưa triển khai] — bảng dưới đây là stack dự kiến, bám theo phần "Đọc trước" của Giai đoạn 2.

1. Bảng phân rã Tech Stack (dự kiến) ​

Thành phầnCông nghệ / Thư việnLý do chọn lựa
Backend CoreJava, Spring BootNền tảng chính của cả hai sub-project
Data AccessSpring Data JPA, Hibernate, FlywayVersion control cho DB schema
DatabasePostgreSQLĐã dùng chung với Sub-project B, thuận tiện tích hợp
OrchestrationSpring State MachineQuản lý state machine cho Saga Orchestrator
Batch ProcessingSpring BatchXử lý EOD Settlement theo mô hình chunk-oriented
XML ProcessingJAXBParse & validate message ISO 20022 (pain.001, pacs.008)
TestingJUnit, Spring Boot TestUnit test & integration test cho các luồng nghiệp vụ

2. Cấu hình Spring Batch cho EOD Settlement (dự kiến) ​

java
@Bean
public Step settlementStep(JobRepository jobRepository,
                          PlatformTransactionManager txManager,
                          ItemReader<PendingSettlementRecord> reader,
                          ItemProcessor<PendingSettlementRecord, SettledTransaction> processor,
                          ItemWriter<SettledTransaction> writer) {
    return new StepBuilder("eodSettlementStep", jobRepository)
        .<PendingSettlementRecord, SettledTransaction>chunk(500, txManager)
        .reader(reader)
        .processor(processor)
        .writer(writer)
        .faultTolerant()
        .skip(CorruptedRecordException.class)
        .skipLimit(10)
        .retry(TransientDatabaseException.class)
        .retryLimit(3)
        .build();
}

Xem lý do chọn chunk-oriented tại ADR-005.

Simulated Banking & Fintech Systems — Java & Spring Boot