Skip to content

luckup/e-commerce-microservices

Repository files navigation

E-Commerce Microservices Sample Application

A sample e-commerce application demonstrating modern microservices and cloud-native architecture patterns.

This project showcases a full-stack e-commerce solution built with:

  • Polyglot Languages & Frameworks: Java (Spring Boot/Cloud), Python (FastAPI, SQLAlchemy), JavaScript/TypeScript (Node.js, Express.js, React)
  • Polyglot Databases: MongoDB, Redis, Elasticsearch, PostgreSQL
  • Deployment Options: Local Kubernetes (k8s) cluster with Docker containers or Public Cloud (AWS)

The application demonstrates how to build a modern cloud-native application using microservices architecture with independently deployable services, each with its own bounded context.

Architecture & Application UI

Architecture Application UI/UX
Architecture Application UI

Functional Microservices

Microservice Description Technologies
Product Catalog Microservice Provides e-commerce merchandise information and images REST API built with Node.js and Express.js, using MongoDB as the data store
Shopping Cart Microservice Shopping cart and checkout functionality REST API built with Spring Boot & Spring Cloud, using Gradle as the build tool and Redis as an in-memory data store
User Profile Microservice User profile management and account features REST API built with Python FastAPI and SQLAlchemy, using PostgreSQL as the database
Search Microservice Search functionality including autocomplete, typeahead, and faceted search Elasticsearch proxy built with Node.js
Store UI Web frontend for the e-commerce store that integrates with all microservices Web application built with React and Material UI using TypeScript/JavaScript

Project Structure

.
├── store-ui                    # Web Store React App with Material UI
├── cart-cna-microservice       # Shopping Cart Microservice
├── products-cna-microservice   # Product Catalog Microservice
├── search-cna-microservice     # Search Microservice
├── users-cna-microservice      # User Profile Management Microservice
└── infra                       # Infrastructure scripts for local and cloud deployment
    ├── k8s                     # Kubernetes (k8s) YAML files
    │   ├── apps                # Microservices-related k8s YAML files
    │   └── shared-services     # Databases and Elasticsearch-related k8s YAML files
    ├── terraform               # Terraform scripts for AWS deployment
    └── performance             # Performance and load testing scripts

Getting Started

Prerequisites

  • Docker and Docker Compose (for local development)
  • Kubernetes cluster (for k8s deployment)
  • AWS account (for cloud deployment)
  • Node.js, Java, and Python development environments (for building services)

Building the Application

For detailed build instructions, refer to the README.md file in each microservice directory:

Deployment

Refer to the infrastructure deployment instructions to deploy the application and dependent services (MongoDB, Redis, Elasticsearch, PostgreSQL) to either:

  • Local machine/development environment
  • AWS cloud infrastructure

Contributing

Issues and feedback are welcome! Please raise an issue on GitHub, and we'll address it as soon as possible.

About

A cloud-native microservices e-commerce sample built with Java/Spring Boot, Python/FastAPI, Node.js/Express, React, and a polyglot database stack. A sample e-commerce application demonstrating modern microservices and cloud-native architecture patterns.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors