How sergeismazal/banking-simulation-poc works
This is a banking transaction simulator. In the available Java sources, the workflow accepts a transfer request, validates account IDs, records a pending transaction and outbox event, then periodically publishes unprocessed events to Kafka. The README also describes frontend, processing, Redis, and anomaly-monitoring capabilities that are not present in the supplied file tree; those documented branches are marked with null paths and dashed links. The sampled sources do not show downstream Kafka consumers or balance updates.
Main entry points: TransferService.java Transfer service · TransferController.java Transfer controller · OutboxRepository.java Outbox repository · OutboxPublisher.java Outbox publisher
Components 17
Transfer API
- Transfer controller
src/main/java/com/fdb/frankfurt/controller/TransferController.java - Transfer request
src/main/java/com/fdb/frankfurt/dto/TransferRequest.java - Transfer service
src/main/java/com/fdb/frankfurt/service/TransferService.java
Persistence
- Account repository
src/main/java/com/fdb/frankfurt/repository/AccountRepository.java - Transaction repository
src/main/java/com/fdb/frankfurt/repository/TransactionRepository.java - Outbox repository
src/main/java/com/fdb/frankfurt/repository/OutboxRepository.java - Account entity
src/main/java/com/fdb/frankfurt/model/Account.java - Transaction entity
src/main/java/com/fdb/frankfurt/model/Transaction.java - Outbox event
src/main/java/com/fdb/frankfurt/model/OutboxEvent.java
Event publishing
- Outbox publisher
src/main/java/com/fdb/frankfurt/service/OutboxPublisher.java - Kafka
Documented capabilities
- Dashboard
- Transaction processor
- Redis controls
- Anomaly monitoring
- Live alerts
Other components
- Transfer client
Connections 16
- Transfer client → Transfer controller: submits
- Transfer controller → Transfer request: accepts
- Transfer controller → Transfer service: calls
- Transfer service → Account repository: checks accounts
- Transfer service → Transaction repository: saves transaction
- Transfer service → Outbox repository: saves event
- Account repository → Account entity: maps
- Transaction repository → Transaction entity: maps
- Outbox repository → Outbox event: maps
- Outbox publisher → Outbox repository: reads and updates
- Outbox publisher → Kafka: publishes
- Dashboard → Transfer controller: uses API
- Kafka → Transaction processor: delivers events
- Transaction processor → Redis controls: uses locks and limits
- Kafka → Anomaly monitoring: streams transactions
- Anomaly monitoring → Live alerts: emits