Backend-only, polyglot self-checkout platform with an event-driven orchestrator and domain-focused microservices.
- Orchestrator: NestJS with CQRS, event sourcing, sagas, and MongoDB persistence
- Product Service: Java and Spring Boot
- Cart Service: Ruby on Rails and Mongoid
- Payment Service: Go
- Inventory Service: C++
- Fraud Service: Rust
- Discount Engine: Python
- Audit Service: Kotlin and Spring Boot
Supporting infrastructure:
- Kafka and RabbitMQ
- PostgreSQL, MongoDB, Redis
- Consul
- Prometheus, Grafana, Jaeger
- Docker Compose, Kubernetes, Terraform
.
├── docker-compose.yml
├── services/
│ ├── orchestrator/
│ ├── product-service/
│ ├── cart-service/
│ ├── payment-service/
│ ├── inventory-service/
│ ├── fraud-service/
│ ├── discount-engine/
│ └── audit-service/
├── shared/
│ └── protos/
├── k8s/
├── monitoring/
└── terraform/
git clone <repository-url>
cd <repository-folder>
docker compose up -d| Service | URL |
|---|---|
| Orchestrator REST API | http://localhost:3000/api/v1/checkouts |
| Orchestrator Swagger | http://localhost:3000/api |
| Product Service | http://localhost:8080/api/v1/products |
| Cart Service | http://localhost:3001/api/v1/carts |
| Payment Service | http://localhost:8081/api/v1/payments |
| Inventory Service | http://localhost:8082/api/v1/inventory |
| Fraud Service | http://localhost:8083/api/v1/fraud/check |
| Discount Engine | http://localhost:5000/api/v1/discounts/calculate |
| Audit Service | http://localhost:8084/api/v1/audit |
| Grafana | http://localhost:3002 |
| Prometheus | http://localhost:9090 |
| Jaeger | http://localhost:16686 |
| Consul | http://localhost:8500 |
- Backend-only repository
- Generated artifacts and local caches are excluded via the root
.gitignore