A Spring Boot Microservices architecture project built for learning modern backend system design and cloud-native development.
This project demonstrates how to build a scalable microservices-based system using Spring Cloud ecosystem, event-driven architecture, and modern DevOps tools.
- Java
- Spring Boot
- Spring Cloud
- Eureka Discovery Server
- Spring Cloud Config Server
- API Gateway
- OpenFeign
- REST Template
- Apache Kafka
- Zookeeper
- Spring Actuator
- Keycloak (Authentication & Authorization)
- Docker & Docker Compose
- GitHub Actions (CI/CD)
This project follows a Microservices Architecture with Domain Driven Design (DDD) principles.
-
Configuration Server
- Centralized configuration management
-
Discovery Server (Eureka)
- Service registration and discovery
-
API Gateway
- Single entry point for all services
-
Customer Service
- Manage customer data
-
Product Service
- Manage product catalog
-
Order Service
- Handle order creation and order lines
-
Payment Service
- Manage payment processing
-
Notification Service
- Send notifications and order confirmations
The system demonstrates both synchronous and asynchronous communication.
- OpenFeign
- REST Template
- Apache Kafka
Authentication and authorization are handled using:
- Keycloak
- Secured API Gateway
- OAuth2 / JWT based authentication
Monitoring and tracing are implemented using:
- Spring Actuator
- Zipkin for distributed tracing
The project uses Docker & Docker Compose to run infrastructure services:
- Kafka
- Zookeeper
- Zipkin
- Keycloak
- Databases