How mtperaya/concurrent-safe-transaction works
This repository is a small Spring Boot account API, with README-documented goals of safe money transfers, an append-only ledger, and concurrent processing. The sampled runtime implements account creation/lookup and transaction-request validation; the transfer, history, authentication, and frontend implementations are not present in the supplied tree. Dashed, README-evidenced links distinguish documented behavior from sampled implementation.
Main entry points: AccountController.java Account Controller · AccountService.java Account Service · AccountRepository.java Account Repository · Account.java Account Entity
Components 16
HTTP API
- Account Controller
transaction-backend/src/main/java/com/mtperaya/transactionbackend/controller/AccountController.java - Transaction Validation
transaction-backend/src/main/java/com/mtperaya/transactionbackend/controller/TransactionValidationController.java - Account Request
transaction-backend/src/main/java/com/mtperaya/transactionbackend/dto/CreateAccountRequest.java - Transfer Request
transaction-backend/src/main/java/com/mtperaya/transactionbackend/dto/CreateTransactionRequest.java
Account Management
- Account Service
transaction-backend/src/main/java/com/mtperaya/transactionbackend/service/AccountService.java - Account Entity
transaction-backend/src/main/java/com/mtperaya/transactionbackend/entity/Account.java - Account Repository
transaction-backend/src/main/java/com/mtperaya/transactionbackend/repository/AccountRepository.java - PostgreSQL
Transfer Domain
- Transfer Processing
- Transaction Ledger
transaction-backend/src/main/java/com/mtperaya/transactionbackend/entity/Transaction.java - Transaction Status
transaction-backend/src/main/java/com/mtperaya/transactionbackend/entity/TransactionStatus.java - Transaction History
Application Runtime
- JWT Authentication
- Error Handler
transaction-backend/src/main/java/com/mtperaya/transactionbackend/exception/GlobalExceptionHandler.java - Spring Boot App
transaction-backend/src/main/java/com/mtperaya/transactionbackend/TransactionBackendApplication.java
Other components
- API Client
Connections 17
- API Client → Account Controller: calls account API
README.md - API Client → Transaction Validation: submits request
README.md - Account Controller → Account Request: accepts
transaction-backend/src/main/java/com/mtperaya/transactionbackend/controller/AccountController.java - Transaction Validation → Transfer Request: validates
transaction-backend/src/main/java/com/mtperaya/transactionbackend/controller/TransactionValidationController.java - Account Controller → Account Service: calls
transaction-backend/src/main/java/com/mtperaya/transactionbackend/controller/AccountController.java - Account Service → Account Entity: creates
transaction-backend/src/main/java/com/mtperaya/transactionbackend/service/AccountService.java - Account Service → Account Repository: saves and reads
transaction-backend/src/main/java/com/mtperaya/transactionbackend/service/AccountService.java - Account Repository → Account Entity: persists
transaction-backend/src/main/java/com/mtperaya/transactionbackend/repository/AccountRepository.java - Account Repository → PostgreSQL: stores accounts
- API Client → Transfer Processing: requests transfer
README.md - Transfer Processing → Transaction Ledger: records movement
README.md - Transfer Processing → Account Entity: updates balances
README.md - Transfer Processing → Transaction Status: sets status
README.md - Transfer Processing → PostgreSQL: locks rows
README.md - API Client → Transaction History: requests history
README.md - API Client → JWT Authentication: authenticates
README.md - Spring Boot App → Account Controller: serves API