Skip to content

hanaz12/Ecommerce-microservices

Repository files navigation

🛒 E-commerce Microservices Project

This project is a practical implementation of Microservices Architecture using Spring Boot and Spring Cloud.
The main goal is to build a distributed, scalable, and secure system where each service runs independently and communicates with others.


Micro-Service Design

Micro-Service Design

UML System Design

UML System Design

Doman Driven Design(DDD)

Doman Driven Design

🧩 Project Structure

The system is divided into several independent services:

  • Config server → where all configurations are centralized in one place.
  • api-gateway service →The entrance to all services.
  • Service registry → Where each service registered itself and able to reach other services.
  • Customer Service → Manages customers.
  • Order Service → Manages orders.
  • Product Service → Manages products.
  • Payment Service → Handles payment operations.
  • Notification Service → Sends notifications and emails to customers.

✨ Each service has its own database and can run independently.


🛠️ Technologies Used

  • Spring Boot → Core framework to build each service quickly (spring web -spring Data Jpa -Lombok -Validation).
  • 🔍 Spring Cloud Netflix Eureka → Service Discovery (so services can find and register with each other).
  • 🚪 Spring Cloud Gateway → A single entry point to the system (API Gateway).
  • 🤝 Feign Client → Simplifies inter-service communication without boilerplate RestTemplate code.
  • 📡 Apache Kafka → Event-driven communication between services.
  • 🗄️ PostgreSQL → Separate database for each service (Database per service).
  • 🐳 Docker & Docker Compose → To containerize and run the whole system easily.
  • 🔐 Keycloak → Authentication & Authorization to secure the services.
  • 📧 Java Mail Sender → To send real emails from Notification Service.
  • 🕵️ Zipkin + Spring Actuator → Distributed Tracing to monitor and track the journey of each request.

🎯 Benefits

  • 🔄 Each service can be scaled or developed independently.
  • 🛡️ System resilience → if one service goes down, others remain functional.
  • 🔗 Easier inter-service communication (thanks to Feign & Kafka).
  • 🔐 Strong security from the start using Keycloak.
  • 📩 Automatic notifications and emails to customers (e.g., after successful payment).
  • 🕵️ Full observability with Zipkin to trace requests end-to-end.
  • ⚙️ Flexibility to add new services or update existing ones without affecting the rest.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published