java_store_adm_microservices is a Portfolio Project Monorepo featuring a distributed microservices architecture built with Java Spring Boot. This project demonstrates enterprise-grade system design for managing an online store, implementing a scalable configuration server and specialized microservices for customer, product, and order management.
Note
A monorepo was chosen to simplify versioning and present the project as a cohesive portfolio piece.
java_store_adm_microservices/
βββ apps/
β βββ api/
β βββ config-server/ # Centralized configuration management
β βββ customer-service/ # Customer management microservice
β βββ order-service/ # Order/Sales management microservice
β βββ product-service/ # Product catalog management microservice
βββ README.md
All business microservices (customer, order, product) share a common technology foundation:
- Java 17
- Spring Boot 3.5.10
- Spring Cloud 2025.0.1
- MongoDB (NoSQL) with Spring Data MongoDB
- Spring Cloud Config Client β connects to the Config Server
- Spring Cloud OpenFeign β declarative HTTP client for inter-service communication
- SpringDoc OpenAPI 2.8.13 β provides Swagger UI documentation
- Spring Boot Validation β input validation
- Lombok β reduces boilerplate code
- Spring Boot DevTools β development-time hot reload
The Config Server is a dedicated microservice that uses Spring Cloud Config Server to centralize configuration for all other services.
| Service | Purpose | Key Differentiators |
|---|---|---|
| Config Server | Centralized configuration management | Spring Cloud Config Server only; no database |
| Customer Service | Manages customer profiles & registration | MongoDB persistence; REST API for customer CRUD |
| Product Service | Manages product catalog & inventory | MongoDB persistence; product search & stock |
| Order Service | Manages orders & sales transactions | MongoDB persistence; integrates with customer & product |
Each microservice exposes its own REST API and Swagger UI at http://localhost:{port}/swagger-ui.html.
β
Microservices Architecture - Independently deployable services with clear responsibility separation
β
Centralized Configuration - Config Server for unified application management
β
Service Communication - OpenFeign for seamless inter-service HTTP calls
β
API Documentation - Built-in Swagger UI via SpringDoc OpenAPI
β
Data Validation - Spring Validation for input integrity
β
MongoDB Integration - Flexible document-based data storage
β
Cloud-Native Design - Spring Cloud components for scalability
β
Development Experience - DevTools for hot reload and faster development
- Java 17 or higher
- Maven 3.6+
- MongoDB instance running
Build all services:
mvn clean installRun individual service:
cd apps/api/config-server
mvn spring-boot:runAccess API Documentation:
Each service exposes Swagger UI at http://localhost:{port}/swagger-ui.html