Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ecommerce Microservices Backend Platform

A production-style Spring Boot microservices backend for an Ecommerce platform, designed using real-world architecture patterns such as service discovery, centralized configuration, event-driven communication, observability, and containerized deployment.


What this project is about

This project represents the backend of a modern ecommerce system built using a microservices architecture. Core business capabilities are separated into independent services such as User, Product, Order, Cart, and Notification, allowing scalability, independent deployments, and fault isolation.

The primary goal of this project is to demonstrate real backend engineering practices rather than simple CRUD APIs. It focuses on service communication, resilience, observability, security, and cloud-ready design.


Core Business Services

  • User Service – User management, authentication integration, and profile data
  • Product Service – Product catalog, pricing, and inventory data
  • Order Service – Order creation, order lifecycle, and event publishing
  • Cart Service – User cart and checkout preparation
  • Notification Service – Asynchronous event-driven notifications

Infrastructure & Platform Services

  • API Gateway (Spring Cloud Gateway)
  • Service Registry (Eureka)
  • Config Server (centralized configuration)
  • RabbitMQ & Kafka (asynchronous messaging)
  • PostgreSQL & MongoDB (polyglot persistence)
  • Keycloak (OAuth2 / JWT authentication)
  • Zipkin, Prometheus, Grafana (observability & monitoring)

Technology Stack

Java 17 · Spring Boot · Spring Cloud (Gateway, Eureka, Config Server) · Spring Data JPA · MongoDB · PostgreSQL · Kafka · RabbitMQ · Resilience4j · Keycloak OAuth2 · OpenFeign · RestTemplate · Docker · Prometheus · Grafana · Zipkin · Maven


Architecture Overview

flowchart TB
    Client[Web / Mobile Clients]

    Gateway[API Gateway<br/>Routing · Security · Filters]

    User[User Service<br/>MongoDB]
    Product[Product Service<br/>PostgreSQL]
    Order[Order Service<br/>PostgreSQL]
    Cart[Cart Service<br/>Redis / DB]
    Notification[Notification Service]

    Eureka[Eureka<br/>Service Discovery]
    Config[Config Server<br/>Centralized Config]

    Kafka[Kafka]
    RabbitMQ[RabbitMQ]

    Zipkin[Zipkin]
    Prometheus[Prometheus]
    Grafana[Grafana]

    Client --> Gateway

    Gateway --> User
    Gateway --> Product
    Gateway --> Order
    Gateway --> Cart

    Order --> Kafka
    Kafka --> Notification

    User -.-> Eureka
    Product -.-> Eureka
    Order -.-> Eureka
    Cart -.-> Eureka

    User -.-> Config
    Product -.-> Config
    Order -.-> Config
    Cart -.-> Config

    User --> Zipkin
    Product --> Zipkin
    Order --> Zipkin

    Prometheus --> Grafana
Loading

Docker & Deployment

All services are fully containerized using Docker and orchestrated using Docker Compose. Environment-specific configuration is externalized using environment variables and a centralized Config Server. The system is designed to be cloud-ready and easily portable across environments.


Why this project stands out

  • Clear separation of business domains using microservices
  • Centralized configuration and service discovery
  • Event-driven communication with Kafka and RabbitMQ
  • Resilience patterns using circuit breakers
  • OAuth2 security with Keycloak
  • Full observability with metrics, tracing, and dashboards
  • Production-style Dockerized setup

Author

Rahul Agarwal
Backend Developer · Java · Spring Boot · Microservices
GitHub: https://github.com/Rahu0909

About

Spring Boot based Ecommerce Microservices system with API Gateway, Eureka, Config Server, Docker, Grafana, Prometheus, Zipkin and Observability.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages