This project is an online home appliances store developed using a microservices architecture.
It simulates the backend of a real e-commerce platform, enabling the management of users, products, shopping carts, and sales.
The main goal of this project is to demonstrate the design and implementation of a distributed system, applying best practices and patterns commonly used in professional environments.
This repository serves as the general entry point to the system.
Each microservice has its own repository and detailed documentation.
📌 This project corresponds exclusively to the backend and runs in a local environment.
The system is composed of multiple independent microservices, each responsible for a specific business capability and owning its own database.
Key architectural characteristics:
- 100% REST communication
- Service Discovery & Registry with Eureka
- Centralized configuration via Spring Cloud Config Server
- API Gateway as a single entry point
- Database per Service pattern
- Local execution using Docker Compose
| Microservice | Responsibility | Repository |
|---|---|---|
| shopping-cart-service | Shopping cart management | 🔗 link |
| sales-service | Sales processing | 🔗 link |
| users-service | User management | 🔗 link |
| products-service | Product catalog | 🔗 link |
| api-gateway | Request routing | 🔗 link |
| eureka-server | Service registry and discovery | 🔗 link |
| config-server | Centralized configuration | 🔗 link |
Each microservice has its own repository with detailed technical documentation.
The API Gateway acts as the single entry point to the system.
Current responsibilities:
- URL routing to the corresponding microservices
- Service resolution through Eureka
Access example:
http://localhost:8080/products-service/products/find-all
At this stage, the gateway is used exclusively for routing, leaving room for future enhancements.
- Java 17
- Spring Boot
- Spring Cloud
- Eureka Server
- Config Server
- API Gateway
- REST APIs
- MySQL
- Docker & Docker Compose
Microservice configuration is centrally managed using Spring Cloud Config Server.
- Each microservice has its own YAML configuration file
- Configuration is stored in a dedicated repository
- Enables scalability and consistency across services
The entire system can be executed locally using Docker Compose.
This approach allows the full microservices architecture to be started in an integrated way, including:
- API Gateway
- Eureka Server (Service Discovery & Registry)
- Config Server
- Business microservices
- Databases associated with each microservice
- Git
- Docker
From the root of this repository, run:
docker compose up --build
