A production-style backend payment gateway built using Spring Boot and PostgreSQL, designed with resiliency, transactional integrity, and CI/CD automation.
- Java 21
- Spring Boot 3
- PostgreSQL
- JPA / Hibernate
- Resilience4j (Circuit Breaker)
- JUnit 5 & Mockito
- H2 (Test Isolation)
- GitHub Actions (CI/CD)
- Docker-ready
- ACID-compliant transactional money transfer
- Idempotent transaction handling to prevent duplicate payments
- Optimistic locking for concurrent financial operations
- Circuit breaker pattern for external payment rail protection
- Full integration testing hitting real REST endpoints
- CI pipeline with automated test execution
- Controller → Service → Repository layered design
- ExternalBankService protected by Resilience4j
- Separate test profile using in-memory H2 database
- Clean separation of production and test environments
-
Set environment variables: DB_USERNAME DB_PASSWORD
-
Run: ./mvnw spring-boot:run
./mvnw clean test
All tests execute automatically via GitHub Actions on push.
Engineered for high-availability financial systems.