🧭 👉 You can explore individual service code by clicking the 🔀 branch
icon above – each branch contains one of the services (Product, Order, Inventory).
This project demonstrates a modular and scalable Spring Boot-based microservices architecture simulating a basic e-commerce system. It includes three core services working together to manage products, handle orders, and check inventory — all routed through a secured API Gateway.
Manages product information including:
- Adding new products
- Updating product details
- Listing available products
- Uses MongoDB as the database, managed via Docker
Handles stock management:
- Checks inventory status for requested products
- Updates stock on successful order placement
- Uses MySQL as the database
Processes customer orders:
- Receives order requests from the client
- Validates product availability via Inventory Service
- Confirms and stores the order if inventory is sufficient
- Uses MySQL as the database
- Uses Resilience4j for circuit breaker pattern to ensure fault tolerance
- Central entry point for all client interactions
- Built using Spring Cloud Gateway
- Secured using OAuth2 authentication
- Routes requests to the appropriate microservices
- Uses Spring Cloud OpenFeign to simplify and abstract service-to-service communication
- Client sends a POST request to place an order.
- The request first goes through the API Gateway.
- The Order Service receives the request, then performs a nested REST call to the Inventory Service using OpenFeign.
- If inventory is available, the order is confirmed and saved.
- All services are registered with Eureka and communicate internally using OpenFeign Clients.