Skip to content

Tech Stack & Architecture Components ​

[Not implemented yet] — the table below is the planned stack, following the "Read first" part of Phase 2.

1. Tech stack breakdown (planned) ​

ComponentTechnology / LibraryWhy
Backend coreJava, Spring BootMain platform of both sub-projects
Data accessSpring Data JPA, Hibernate, FlywayVersion control for the DB schema
DatabasePostgreSQLShared with Sub-project B, easier integration
OrchestrationSpring State MachineState machine for the Saga Orchestrator
Batch processingSpring BatchChunk-oriented EOD settlement
XML processingJAXBParse & validate ISO 20022 messages (pain.001, pacs.008)
TestingJUnit, Spring Boot TestUnit & integration tests for the business flows

2. Spring Batch configuration for EOD settlement (planned) ​

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();
}

Why chunk-oriented processing: ADR-005.

Simulated Banking & Fintech Systems — Java & Spring Boot