βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SIMULATED BANKING SYSTEM β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
coordinated_producer.py
(Generates fake transactions)
β
βββ core_txns (Kafka Topic)
βββ gateway_txns (Kafka Topic)
βββ mobile_txns (Kafka Topic)
β
β
simple_reconciliation_consumer.py
β
β
βββββββββββββββββββββββββββββ
β Reconciliation Engine β
β - Match transactions β
β - Detect mismatches β
β - Calculate accuracy β
βββββββββββββββββββββββββββββ
β
β
βββββββββββββββββββββββββββββ
β PostgreSQL Database β
β - Transactions β
β - Mismatches β
β - Reconciliation Results β
βββββββββββββββββββββββββββββ
β
β
βββββββββββββββββββββββββββββ
β React Frontend Dashboard β
β - Real-time monitoring β
β - Analytics & reports β
β - Professional UI β
βββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β REAL BANKING SYSTEMS β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββ
β HDFC Bank β
β REST API β
ββββββββ¬βββββββ
β
βββββββββββββββ
β ICICI Bank β
β REST API β
ββββββββ¬βββββββ
β
βββββββββββββββ
β SBI β
β OAuth 2.0 β
ββββββββ¬βββββββ
β
βββββββββββββββ
β Razorpay β
β REST API β
ββββββββ¬βββββββ
β
βββββββββββββββ
β Axis Bank β
β SFTP Files β
ββββββββ¬βββββββ
β
β
ββββββββββββββββββββββββββββ
β bank_adapter.py β
β - Fetch from APIs β
β - Transform data β
β - Handle errors β
β - Retry logic β
ββββββββββββ¬ββββββββββββββββ
β
βββ hdfc_txns (Kafka Topic)
βββ icici_txns (Kafka Topic)
βββ sbi_txns (Kafka Topic)
βββ razorpay_txns (Kafka Topic)
βββ axis_txns (Kafka Topic)
β
β
ββββββββββββββββββββββββββββββββ
β bank_reconciliation_consumer β
β - Consume from Kafka β
β - Validate data β
β - Store in database β
ββββββββββββ¬ββββββββββββββββββββ
β
β
ββββββββββββββββββββββββββββββββ
β Reconciliation Engine β
β - Match transactions β
β - Detect mismatches β
β - Calculate accuracy β
β - Generate reports β
ββββββββββββ¬ββββββββββββββββββββ
β
β
ββββββββββββββββββββββββββββββββ
β PostgreSQL Database β
β - Real transactions β
β - Reconciliation results β
β - Audit logs β
ββββββββββββ¬ββββββββββββββββββββ
β
β
ββββββββββββββββββββββββββββββββ
β React Frontend Dashboard β
β - Real-time monitoring β
β - Bank-wise analytics β
β - Professional UI β
β - Theme toggle β
ββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BANK DATA SOURCES β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β HDFC Bank β
β ββ API Type: REST β
β ββ Auth: OAuth 2.0 Bearer Token β
β ββ Endpoint: https://api.hdfcbank.com/v1/transactions β
β ββ Rate Limit: 1000 req/hour β
β β
β ICICI Bank β
β ββ API Type: REST β
β ββ Auth: API Key + Bearer Token β
β ββ Endpoint: https://api.icicibank.com/v2/transactions β
β ββ Rate Limit: 500 req/hour β
β β
β SBI (State Bank of India) β
β ββ API Type: REST β
β ββ Auth: OAuth 2.0 β
β ββ Endpoint: https://api.sbi.co.in/api/v1/transactions β
β ββ Rate Limit: 2000 req/hour β
β β
β Razorpay (Payment Gateway) β
β ββ API Type: REST β
β ββ Auth: Basic Auth (Key + Secret) β
β ββ Endpoint: https://api.razorpay.com/v1/payments β
β ββ Rate Limit: Unlimited β
β β
β Axis Bank β
β ββ API Type: SFTP File Transfer β
β ββ Auth: SFTP Credentials β
β ββ Path: /transactions/axis/ β
β ββ Frequency: Daily/Hourly β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BANK DATA ADAPTER (bank_adapter.py) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β BankDataAdapter Class β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β
β β β β
β β Methods: β β
β β β’ fetch_from_hdfc_api() β β
β β β’ fetch_from_icici_api() β β
β β β’ fetch_from_sbi_api() β β
β β β’ fetch_from_razorpay() β β
β β β’ fetch_from_sftp() β β
β β β’ send_to_kafka() β β
β β β’ standardize_*_transaction() β β
β β β β
β β Features: β β
β β β Error handling & retry logic β β
β β β Data transformation β β
β β β Kafka producer integration β β
β β β Logging & monitoring β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β KAFKA MESSAGE QUEUE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Topics: β
β ββ hdfc_txns (HDFC transactions) β
β ββ icici_txns (ICICI transactions) β
β ββ sbi_txns (SBI transactions) β
β ββ razorpay_txns (Razorpay transactions) β
β ββ axis_txns (Axis transactions) β
β β
β Features: β
β β Scalable message processing β
β β Fault tolerance β
β β Real-time data streaming β
β β Consumer group management β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BANK RECONCILIATION CONSUMER β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β BankReconciliationConsumer β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β
β β β β
β β Process: β β
β β 1. Consume from Kafka topics β β
β β 2. Validate transaction data β β
β β 3. Save to database β β
β β 4. Add to reconciliation engine β β
β β 5. Log events β β
β β β β
β β Features: β β
β β β Multi-topic consumption β β
β β β Data validation β β
β β β Error handling β β
β β β Audit logging β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β RECONCILIATION ENGINE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β ReconciliationEngine β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β
β β β β
β β Matching Logic: β β
β β β’ Match by transaction ID β β
β β β’ Match by amount + timestamp β β
β β β’ Match by account + amount β β
β β β β
β β Mismatch Detection: β β
β β β’ Amount mismatch (6%) β β
β β β’ Status mismatch (4%) β β
β β β’ Time mismatch (2%) β β
β β β’ Currency mismatch (1%) β β
β β β’ Missing fields (1%) β β
β β β β
β β Output: β β
β β β’ Reconciliation status (MATCHED/MISMATCH) β β
β β β’ Mismatch details β β
β β β’ Success rate calculation β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β POSTGRESQL DATABASE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Tables: β
β ββ transactions β
β β ββ txn_id (PK) β
β β ββ amount β
β β ββ currency β
β β ββ status β
β β ββ source (bank) β
β β ββ timestamp β
β β ββ ... (other fields) β
β β β
β ββ reconciliation_results β
β β ββ txn_id (FK) β
β β ββ status (MATCHED/MISMATCH) β
β β ββ sources (array of banks) β
β β ββ timestamp β
β β β
β ββ mismatches β
β β ββ id (PK) β
β β ββ txn_id (FK) β
β β ββ type (mismatch type) β
β β ββ severity (HIGH/MEDIUM/LOW) β
β β ββ details β
β β β
β ββ audit_logs β
β ββ id (PK) β
β ββ action β
β ββ timestamp β
β ββ details β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β REACT FRONTEND DASHBOARD β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Pages: β
β ββ Overview Dashboard β
β β ββ KPI Cards (transactions, accuracy, etc.) β
β β ββ Real-time charts β
β β ββ Recent transactions β
β β β
β ββ Transactions β
β β ββ Live transaction table β
β β ββ Filter by bank/status β
β β ββ Transaction details β
β β β
β ββ Mismatches β
β β ββ Mismatch list β
β β ββ Severity indicators β
β β ββ Investigation tools β
β β β
β ββ Analytics β
β β ββ Bank-wise statistics β
β β ββ Reconciliation trends β
β β ββ Performance metrics β
β β β
β ββ System Health β
β ββ Service status β
β ββ Performance metrics β
β ββ Alerts β
β β
β Features: β
β β Professional UI (no emojis) β
β β Dark/Light theme toggle β
β β Real-time updates β
β β Responsive design β
β β INR currency formatting β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Bank APIs
β
βββ HDFC API βββ
βββ ICICI API ββ€
βββ SBI API ββββ€
βββ Razorpay βββ€
βββ Axis SFTP ββ€
β
β
bank_adapter.py
(Transform & Validate)
β
βββ Kafka: hdfc_txns
βββ Kafka: icici_txns
βββ Kafka: sbi_txns
βββ Kafka: razorpay_txns
βββ Kafka: axis_txns
β
β
bank_reconciliation_consumer
(Consume & Process)
β
βββ PostgreSQL (Save)
βββ Reconciliation Engine
β
βββ Match Transactions
βββ Detect Mismatches
βββ Calculate Accuracy
βββ Generate Reports
β
βββ PostgreSQL (Store Results)
βββ Frontend Dashboard
β
βββ Real-time Monitoring
βββ Analytics & Reports
βββ Professional UI
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PRODUCTION DEPLOYMENT β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Docker Containers β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β
β β β β
β β β’ kafka-kafka-1 (Kafka Broker) β β
β β β’ kafka-zookeeper-1 (Zookeeper) β β
β β β’ reconciliation_postgres (PostgreSQL) β β
β β β’ backend-api (FastAPI Backend) β β
β β β’ frontend (React Frontend) β β
β β β’ bank-producer (Real Bank Producer) β β
β β β’ bank-consumer (Bank Reconciliation Consumer) β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Monitoring & Logging β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β
β β β β
β β β’ Application Logs (bank_producer.log) β β
β β β’ Error Tracking β β
β β β’ Performance Metrics β β
β β β’ Alert System β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Frontend:
ββ React 18
ββ Axios (HTTP Client)
ββ CSS (Professional Styling)
ββ Theme Toggle (Dark/Light)
Backend:
ββ FastAPI (Python)
ββ PostgreSQL (Database)
ββ SQLAlchemy (ORM)
ββ Pydantic (Data Validation)
Message Queue:
ββ Apache Kafka
ββ Zookeeper
ββ kafka-python (Client)
Data Processing:
ββ Python 3.9+
ββ Requests (HTTP)
ββ Paramiko (SFTP)
ββ Cryptography (Encryption)
Infrastructure:
ββ Docker
ββ Docker Compose
ββ Linux/Windows
- Multiple Kafka brokers for high throughput
- Multiple consumer instances for parallel processing
- Load balancer for frontend/backend
- Increase database resources
- Increase Kafka broker memory
- Optimize reconciliation engine
- Database indexing on frequently queried fields
- Kafka partition optimization
- Caching layer (Redis)
- Query optimization
Last Updated: December 27, 2025 Version: 1.0