A Spring Boot microservice demo for real-time currency conversion This project demonstrates a distributed system with two Spring Boot services:
auth-service: Reactive JWT authentication & gRPC server for token validation (Port: 8081 / gRPC: 9091)rate-service: Fetches real-time exchange rates via gRPC server (Port: 8082 / gRPC: 9092)main-service: Edge API Gateway / Transcoder. Translates REST to gRPC (Port: 8080)common-config: Centralized gRPC contracts (.proto) and shared libraryconfig-server: Centralized configuration management with encryption (Port: 8888)
Key features include:
✔ Reactive authentication (WebFlux + JWT)
✔ Inter-service communication (High-performance gRPC)
✔ Centralized Contracts (Versioned .proto files in common-config)
✔ Zero-Trust Security (Asynchronous gRPC Auth Interceptors)
✔ Event-driven architecture (Kafka for auth events)
✔ Third-party API integration (ExchangeRate-API)
✔ Resilience Patterns (Circuit breakers, Retries via Resilience4j)
✔ Database persistence (PostgreSQL for transactions, Redis for tokens)
✔ Centralized configuration (Spring Cloud Config)
✔ Observability (Prometheus metrics, Distributed Tracing)
✔ Global exception handling with standardized gRPC error mapping
✔ Containerized deployment (Docker & Kubernetes support)
# Build all services
docker-compose build
# Start all services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop all services
docker-compose down- Create feature branch from master
- Implement changes with tests (80%+ coverage)
- Run full test suite:
mvn clean verify - Submit PR with description
Copyright © 2025 Currency Converter Platform
- 📧 Email: Chief Backend Engineer or Personal Email