Sample E-Commerce application using Microservices / Cloud Native Architecture (CNA)
A fictitious e-commerce sample application built using modern technologies and Microservices & Cloud Native Architecture patterns.
- Polyglot Languages & Frameworks (Java - Spring Boot/Cloud, Python - FastAPI, SQLAlachamey, JavaScript/TypeScript - Node, ExpressJS, React)
- Polyglot Databases (MongoDB, Redis, ElastiSearch, PostgreSQL)
- Able to deploy to local Kubernetes (k8s) cluster as containers (Docker) and also to Public Cloud (AWS).
This is an end-to-end e-commerce solution that demonstrates how to build a moder CNA application using microservices architecture with full-stack technologies. This application includes below functional microservices which are independently deployable with bounded context.
You can standup application locally on your laptop/desktop with few steps and also to AWS.
App - UI/UX, Architecture & Technologies Used
Architecture | Application UI/UX |
---|---|
Functional Microservices
Microservice | Description | Technologies Used |
---|---|---|
Product Catalog Microservice | Provides e-commerce merchandise information and images. | A REST API built using NodeJS, ExpressJS relies MongoDB as a data store. |
Shopping Cart Microservice | A Microservice with shopping cart and checkout features. | A REST API built using Spring Boot & Cloud with Gradle as build tool, leverages Redis as in-memory data store. |
User Profile Microservice | User profile management, account and more. | A REST API built using Python FastAPI and SQLAlchamey used PostreSQL |
Search Microservice | Enables seach functionality such as auto complete, typeahead, faceted search features | A proxy to ElasticSearch, leverages Node |
Store UI | A web UI frontend for e-commerce store that uses above Microservices | A web app built using React, Material UI using TypeScript/JavaScript |
Folder Structure
.
├── store-ui # Web Store Ract App with Material UI
│ └── ...
├── cart-cna-microservice # Shopping Cart Microservice repository
├── products-cna-microservice # Product Catalog Microservice folder
├── search-cna-microservice # Search Microservice
├── users-cna-microservice # User Profile Management Microservice
├── users-cna-microservice # User Profile Management Microservice
├── store-ui # Web Store Ract App with Material UI
└── infra # Infrastructure scripts to setup app locally & cloud
├── k8s # Kubernetes (k8s) YAML files
│ └── apps # Microservices related k8s yaml files.
│ └── shared-services # Databases, ElasticSeach related k8s yaml files.
├── terraform # Terraform scripts to deploy to AWS
└── performance # Performance and load testing scripts
Getting Started
Build
Go through detailed instructions specified in README.md file of each microservice.
Deploy
Refer to instructions to deploy application and dependent services such as MongoDB, Redis, ... either to local machine or AWS.
Issues & Feedback
Raise an issue in Github. Will address as soon as possible.