Home

Awesome

AWS Serverless Ecommerce Platform

Status: Work-in-progress. Please create issues or pull requests if you have ideas for improvement.

The Serverless Ecommerce Platform is a sample implementation of a serverless backend for an e-commerce website. Functionalities are split across multiple micro-services that communicate either through asynchronous messages over Amazon EventBridge or over synchronous APIs.

This sample is not meant to be used as an e-commerce platform as-is, but as an inspiration on how to build event-driven serverless microservices on AWS. This makes lots of assumptions on the order flow that might not be suitable for most e-commerce platform and doesn't include many of the features that you might need for this.

Please note that you may incure AWS charges for deploying the ecommerce platform into your AWS account as not all services used are part of the free tier and you might exceed the free tier usage limit. To track costs in your AWS account, consider using AWS Cost Explorer and AWS Billing and Cost Management. You can also set up a billing alarm to get notified of unexpected charges.

<p align="center"> <img src="docs/images/flow.png" alt="High-level flow across microservices"/> </p>

Getting started

To install the necessary tools and deploy this in your own AWS account, see the getting started guide in the documentation section.

Architecture

High-level architecture

This is a high-level view of how the different microservices interact with each other. Each service folder contains anarchitecture diagram with more details for that specific service.

<p align="center"> <img src="docs/images/architecture.png" alt="High-level architecture diagram"/> </p>

Technologies used

Communication/Messaging:

Authentication/Authorization:

Compute:

Storage:

CI/CD:

Monitoring:

Backend services

ServicesDescription
usersProvides user management, authentication and authorization.
productsSource of truth for products information.
ordersManages order creation and status.
warehouseManages inventory and packaging orders.
deliveryManages shipping and tracking packages.
delivery-pricingPricing calculator for deliveries.
paymentManages payment collection and refunds.
payment-3pSimulates a third party payment system.

Frontend service

ServicesDescription
frontend-apiUser-facing API for interacting with the services.

Infrastructure services

ServicesDescription
pipelineCI/CD pipeline for deploying the resources in production.
platformCore platform resources for deploying backend services.

Shared resources

NameDescription
docsDocumentation application for all services.
sharedShared resources accessible for all services, such as common CloudFormation templates and OpenAPI schemas.
toolsTools used to build services.

Documentation

See the docs folder for the documentation.

Contributing

See the contributing and getting started documents to learn how to contribute to this project.

License

This library is licensed under the MIT-0 License. See the LICENSE file.