E-Commerce Microservices
Project
Product Management Service using Spring
Boot and JDBC
Abstract
• This project uses a microservices-
based architecture, where different
functionalities are encapsulated in
separate, independently deployable
services.
• Each backend service operates
independently, enabling individual
scalability and deployment, reducing
dependencies, and improving fault
isolation.
Introduction
• Microservices architecture splits an
application into small,
independently deployable services,
each focused on a specific
business capability.
• This project consists of several key
services—product-service, offer-
service, service-registry, and api-
gateway—which work together to
provide application functionality.
• Using service-registry for locating
services and api-gateway for
routing, the architecture simplifies
communication, load balancing, and
scaling.
Existing System
• Scalability Challenges: Monolithic
applications scale as a single unit,
which often leads to inefficient use
of resources and increased costs
when trying to handle high demand.
• Maintenance Complexity: Since all
functionalities are tightly coupled,
even small updates require
redeploying the entire application,
increasing the chances of unintended
side effects and downtime.
• Limited Flexibility: Different
application components must use
the same technology stack, limiting
flexibility to adopt new or specialized
tools for specific features.
Proposed System
• Microservices Architecture for
Modularity: The proposed system is
designed using a microservices
architecture, where each service handles
a specific business functionality,
promoting modularity and separation of
concerns.
• Independent Deployment and Scalability:
Each service, such as product-service and
offer-service, can be deployed, scaled,
and updated independently, allowing
efficient resource management and faster
deployment cycles.
• Enhanced Fault Isolation: By
isolating functionalities into separate
services, failures in one service (e.g.,
product- service) do not impact other
services, enhancing the system’s
resilience and reliability.
Requirements
Programming
Languages and Middleware and Service Discovery and Frontend Development
Databases Development Tools Version Control Build Tools
Frameworks Messaging API Gateway Tools
• Java • Rabbit MQ • Eur ek a (Servi ce- • H2 Database • IntelliJ IDEA or Eclipse • Git • Maven • Node.js
• Spring Boot Registry) • Lombok Plugin • Angular CLI
• Angular • Zuul or Spring Cloud • Postman
Gateway (API-
Gateway)
Scope of the Project
GOAL: CREATE A SCALABLE E- APPLICATION INTERACTS WITH BACKEND
COMMERCE APPLICATION. SERVICES THROUGH API GATEWAY.
User APl Paymen
SERVICE Gatewa t
y SERVICE
Companie Messag
s e
SERVICE SERVICE
Notificatio
n
SERVICE
Implementatio
n
Service Registry API Gateway Product- Microservice-
(Eureka) (Zuul) Service & UI (Angular)
Offer-Service
• Registers • Routes • Independent • User
and tracks and endpoints interface for
all services balances for interacting
for dynamic requests managing with products
discovery. to products and and offers
backend offers. through API
services. • Uses Gateway.
RabbitMQ for
asynchronous
updates
between
services.
Test Cases
Frontend Testing: Verify API Gateway Testing: Ensure Service Communication:
product listings, adding request routing and load Event notification from offer-
products. balancing. service to product-service.
Execution or Results
• UI Interactions and screenshots of product
listings and discounts.
• Terminal logs showing service discovery and
RabbitMQ message handling.
Conclusion and
Future
Enhancements
• Project success as a
microservices example.
• Potential
improvements: Adding
services, enhancing
fault tolerance with
Hystrix.