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.