Enterprise‑grade banking transaction platform with microservices (Java, C#, Node.js), PostgreSQL, Redis, RabbitMQ, Kafka, and a full DevOps pipeline.
- Microservices architecture — Auth (Java), Payment (C#), Notification (Node.js)
- Event‑driven communication via RabbitMQ and Kafka
- Data persistence with PostgreSQL (relational) and Redis (caching)
- RESTful APIs with health checks and readiness probes
- Containerization with Docker Compose (local development)
- CI/CD pipeline using GitHub Actions (build, test, push)
- Monitoring (planned for v2.0.0) — Prometheus + Grafana
- Realistic banking data model — transactions, users, notifications
| Layer | Technology |
|---|---|
| Backend (Auth) | Java 21 + Spring Boot + Maven |
| Backend (Payment) | C# + .NET 8 |
| Backend (Notification) | Node.js 20 + Express |
| Databases | PostgreSQL 15, Redis 7 |
| Message Brokers | RabbitMQ 3, Kafka (Confluent) |
| Containerization | Docker + Docker Compose |
| CI/CD | GitHub Actions |
| Monitoring (future) | Prometheus + Grafana |
-
Clone the repository:
git clone https://github.com/DevSpecOps/TreasuryAICore.git cd TreasuryAICore -
Build and run all services:
docker-compose up -d --build
-
Verify services:
Service URL Credentials Auth API http://localhost:8080/api/v1/auth/health — Payment API http://localhost:8081/api/v1/payment/health — Notification API http://localhost:8082/api/v1/notification/health — PostgreSQL localhost:5432 treasury / treasury123 Redis localhost:6379 — RabbitMQ Management http://localhost:15672 treasury / treasury123 Kafka localhost:9092 — -
Check data flow:
- The
init-db.shscript automatically creates thetransactionstable on PostgreSQL startup. - Run the seed script to populate test data:
python3 scripts/seed-data.py
- The
You can run each service separately, but you'll need to start PostgreSQL, Redis, RabbitMQ, and Kafka manually.
# Auth Service (Java)
cd services/auth-service
mvn spring-boot:run
# Payment Service (C#)
cd services/payment-service
dotnet run
# Notification Service (Node.js)
cd services/notification-service
npm install
npm startEach service uses environment variables for configuration — see docker-compose.yml for examples.
Each service has its own unit tests:
# Auth Service
cd services/auth-service
mvn test
# Payment Service
cd services/payment-service
dotnet test
# Notification Service
cd services/notification-service
npm test| File | Purpose |
|---|---|
services/auth-service/pom.xml |
Java (Maven) dependencies |
services/payment-service/*.csproj |
.NET NuGet packages |
services/notification-service/package.json |
Node.js npm packages |
GitHub Actions (or GitLab CI) is configured to:
- Run unit tests on every
pushandpull_request - Build Docker images for each microservice
- (Optional) Push images to a container registry
See .github/workflows/ci.yml (or .gitlab-ci.yml).
TreasuryAICore/
├── .github/workflows/ # CI/CD pipelines
├── services/
│ ├── auth-service/ # Java + Spring Boot
│ │ ├── Dockerfile
│ │ ├── pom.xml
│ │ └── src/
│ ├── payment-service/ # C# + .NET 8
│ │ ├── Dockerfile
│ │ ├── TreasuryAICore.Payment.csproj
│ │ └── Program.cs
│ └── notification-service/ # Node.js + Express
│ ├── Dockerfile
│ ├── package.json
│ └── app.js
├── scripts/
│ ├── init-db.sh # DB initialisation
│ └── seed-data.py # Test data generator
├── docker-compose.yml # Full stack orchestration
└── README.md
- ✅ Docker Compose with all services
- ✅ PostgreSQL, Redis, RabbitMQ, Kafka
- ✅ Health check endpoints
- ✅ Basic CI/CD pipeline
- Kubernetes (k3s) with Helm charts
- Prometheus + Grafana monitoring
- Full CI/CD with GitLab CI (build, deploy, rollback)
- SLA dashboards and alerting
- Service Mesh (Istio)
- GitOps (ArgoCD)
- Centralised logging (Loki)
- Load testing (k6) in CI
Check the Releases page for versioned artifacts, changelogs, and stable builds.
- Latest stable version: v1.0.0
MIT — free for personal and commercial use.
PRs and issues are welcome! Feel free to improve the project.
- Author: DevSpecOps
- Email: devspecops@gmail.com
- GitHub: @DevSpecOps
- Telegram: @DevSpecOps