How tebogomoremi/eks-transaction-service works
EKS Transaction Service accepts CASH_IN and CASH_OUT requests through REST or SOAP; SOAP adapts requests to the REST transaction endpoint so both paths share processing. The main flow validates input, evaluates Drools rules, retrieves weather through Camel, builds a typed transaction, and persists it with JPA. Correlation IDs accompany request processing, while exception mappers format REST errors. README documents AWS credential and deployment capabilities, but the supplied source does not show their runtime wiring; the graph focuses on evidenced application behavior and documented external stores.
Main entry points: TransactionService.java Transaction service · TransactionResource.java REST transactions · TransactionSoapServlet.java SOAP servlet · TransactionSoapServiceImpl.java SOAP adapter
Components 18
API interfaces
- REST transactions
src/main/java/com/tebogo/eks/api/TransactionResource.java - Health check
src/main/java/com/tebogo/eks/api/HealthResource.java - SOAP servlet
src/main/java/com/tebogo/eks/soap/TransactionSoapServlet.java - SOAP adapter
src/main/java/com/tebogo/eks/soap/TransactionSoapServiceImpl.java
Transaction processing
- Application wiring
src/main/java/com/tebogo/eks/bootstrap/ApplicationContext.java - Transaction service
src/main/java/com/tebogo/eks/service/TransactionService.java - Request validation
src/main/java/com/tebogo/eks/validation/CompositeTransactionValidator.java - Drools rules
src/main/java/com/tebogo/eks/rules/DroolsRuleService.java - Transaction models
src/main/java/com/tebogo/eks/model/PaymentTransaction.java - JPA repository
src/main/java/com/tebogo/eks/persistence/TransactionRepository.java
External integrations
- Weather client
src/main/java/com/tebogo/eks/integration/WeatherClient.java - Camel weather route
src/main/java/com/tebogo/eks/integration/WeatherRoute.java
Request support
- Correlation filter
src/main/java/com/tebogo/eks/logging/CorrelationIdFilter.java - Business logging
src/main/java/com/tebogo/eks/logging/BusinessLoggingAspect.java - REST error mapping
src/main/java/com/tebogo/eks/error/GlobalExceptionMapper.java
Other components
- API clients
- Weather API
- PostgreSQL database
Connections 19
- API clients → REST transactions: submits REST
- REST transactions → API clients: returns result
- API clients → SOAP servlet: submits SOAP
- SOAP servlet → SOAP adapter: dispatches
- SOAP adapter → REST transactions: posts JSON
- Health check → API clients: returns status
- REST transactions → Correlation filter: uses request filter
- REST transactions → Application wiring: gets service
- Application wiring → Transaction service: constructs
- Transaction service → Request validation: validates
- Transaction service → Drools rules: evaluates
- Transaction service → Weather client: requests weather
- Weather client → Camel weather route: sends query
- Camel weather route → Weather API: calls
- Transaction service → Transaction models: builds
- Transaction service → JPA repository: saves
- JPA repository → PostgreSQL database: persists
- Transaction service → Business logging: annotates operation
- REST transactions → REST error mapping: maps exceptions