Skip to content

Showcase Full-Stack Architecture

End-to-end layered view — Presentation → Edge → Microservices → Messaging → Data


Layer 1 · Presentation

App Stack URL
Showcase App React 18 · TypeScript · Vite 5 · Playwright E2E frontend.fincuro.in
Arcat Portal React 18 · Vite 8 · Mermaid · SwaggerUI · ReactFlow developer.fincuro.in

Layer 2 · Edge & Routing

  • Vite proxy: /svc/* → services
  • CORS enabled
  • Hot module replacement
  • Spring Cloud Gateway — request routing & JWT auth
  • Eureka Discovery:8761
  • Config Server:8888

Layer 3 · Microservices

Service Port Description
Customer Service 8082 KYC, addresses, finance details, guardian, income, nominees, joint accounts
Deposit Service 8081 Term deposit lifecycle — opening, interest, freeze, lien, premature closure, renewal
Transaction Service 8085 Cash & transfer transactions, exception handling, approvals, charges, denominations
Share Service 8086 Share account management, share capital, admission, transfers, withdrawal operations
Service Port Description
Product Service 8083 Account heads, classification profiles, rate slabs, eligibility rules, features
Periodic Activity 8087 Interest rate computations, period-end processing
General Ledger Service 8088 GL entries, major/sub account heads, GL limits, branch GL accounts & groups
Service Port Description
System Setup Service 8089 Configuration, bank & branch setup
Bank & Branch Service 8090 Bank and branch master data
Common Service 8091 Shared utilities, common data

Cross-cutting capabilities: OpenFeign + Resilience4j · Kafka :9092 · Redis :6379 · Eureka :8761


Layer 4 · Data Tier

graph LR
    CS[Customer Service\n:8082] --> PG[(neocoredb\ncustomer-service_db-linux)]
    DS[Deposit Service\n:8081] --> PG2[(neocoredb\ndeposit-service_db-linux)]
    TS[Transaction Service\n:8085] --> PG3[(neocoredb\ntransaction-service_db-linux)]
    SS[Share Service\n:8086] --> PG4[(neocoredb\nshare-service_db-linux)]
    PS[Product Service\n:8083] --> PG5[(neocoredb\nproduct-service_db-linux)]
    GLS[GL Service\n:8088] --> PG6[(neocoredb\ngeneralledger-service_db-linux)]
    SYS[System Setup\n:8089] --> PG7[(neocoredb\nsystem-setup-service_db-linux)]
    COM[Common Service\n:8091] --> PG8[(common_db\nlocalhost:5432)]
Detail Value
Primary DB PostgreSQL — 103.216.94.145:5443
Database name neocoredb
Schema pattern {service-name}_db-linux
Exception common-servicelocalhost:5432/common_db
Migrations Flyway — runs on every startup
Connection pool HikariCP — max 10, min 5, timeout 30s

Layer 5 · Build & Ops

# Java services
mvn -q -DskipTests package          # produces fat JAR

# Frontend
npm run build                       # tsc && vite build → dist/

# Portal (prebuild zips DB artefacts)
npm run build
# Start backing services
docker compose up -d postgres kafka redis

# Create common DB (one-time)
createdb -h localhost -U postgres common_db
# Tag and push with env-var overrides
docker build -t neocore/{service}:latest .
docker push neocore/{service}:latest

System-level Architecture Diagram

graph TB
    subgraph Presentation
        FE["Showcase App\nReact 18 · Vite 5"]
        PORTAL["Arcat Portal\nReact 18 · Vite 8"]
    end

    subgraph Edge
        GW["Spring Cloud Gateway\n:8080"]
        EUR["Eureka\n:8761"]
    end

    subgraph CoreBanking["Core Banking"]
        CS["Customer\n:8082"]
        DS["Deposit\n:8081"]
        TS["Transaction\n:8085"]
        SH["Share\n:8086"]
    end

    subgraph Supporting["Supporting"]
        PS["Product\n:8083"]
        PA["Periodic Activity\n:8087"]
        GL["General Ledger\n:8088"]
    end

    subgraph Infra["Infrastructure"]
        SYS["System Setup\n:8089"]
        BB["Bank & Branch\n:8090"]
        COM["Common\n:8091"]
    end

    subgraph Data["Data Tier"]
        PG[("PostgreSQL\nneocoredb")]
        KFK["Kafka\n:9092"]
        RDS["Redis\n:6379"]
    end

    FE -->|JWT Bearer| GW
    GW --> CS & DS & TS & SH & PS & PA & GL & SYS
    CS & DS & TS & SH & PS & PA & GL & SYS --> PG
    CS & DS & TS & SH & PS & PA & GL --> KFK
    CS & DS & TS & SH & PS & GL & SYS --> RDS
    EUR -.- GW