{"id":13579715,"url":"https://github.com/aws-samples/aws-serverless-ecommerce-platform","last_synced_at":"2025-09-28T21:31:06.596Z","repository":{"id":37078406,"uuid":"228891938","full_name":"aws-samples/aws-serverless-ecommerce-platform","owner":"aws-samples","description":"Serverless Ecommerce Platform is a sample implementation of a serverless backend for an e-commerce website. 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.","archived":true,"fork":false,"pushed_at":"2024-07-11T21:33:25.000Z","size":5253,"stargazers_count":1102,"open_issues_count":33,"forks_count":372,"subscribers_count":44,"default_branch":"main","last_synced_at":"2024-09-27T03:23:05.349Z","etag":null,"topics":["api-gateway","appsync","aws","eventbridge","lambda","microservices","serverless"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit-0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aws-samples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-12-18T17:41:10.000Z","updated_at":"2024-09-26T02:45:32.000Z","dependencies_parsed_at":"2023-02-06T02:31:34.876Z","dependency_job_id":"61e1b8e0-d5ef-474e-911e-cec82ca9d515","html_url":"https://github.com/aws-samples/aws-serverless-ecommerce-platform","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-samples%2Faws-serverless-ecommerce-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-samples%2Faws-serverless-ecommerce-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-samples%2Faws-serverless-ecommerce-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-samples%2Faws-serverless-ecommerce-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aws-samples","download_url":"https://codeload.github.com/aws-samples/aws-serverless-ecommerce-platform/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234563141,"owners_count":18853060,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","appsync","aws","eventbridge","lambda","microservices","serverless"],"created_at":"2024-08-01T15:01:42.250Z","updated_at":"2025-09-28T21:31:01.055Z","avatar_url":"https://github.com/aws-samples.png","language":"Python","funding_links":[],"categories":["AWS Serverless Architectures","Python","serverless"],"sub_categories":[],"readme":"AWS Serverless Ecommerce Platform\n=================================\n\n__Status__: _Work-in-progress. Please create issues or pull requests if you have ideas for improvement._\n\nThe __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](https://aws.amazon.com/eventbridge/) or over synchronous APIs.\n\n__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.\n\n_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](https://aws.amazon.com/free/) and you might exceed the free tier usage limit. To track costs in your AWS account, consider using [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) and [AWS Billing and Cost Management](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html). You can also set up a [billing alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html) to get notified of unexpected charges._\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/flow.png\" alt=\"High-level flow across microservices\"/\u003e\n\u003c/p\u003e\n\n## Getting started\n\nTo install the necessary tools and deploy this in your own AWS account, see the [getting started](docs/getting_started.md) guide in the documentation section.\n\n## Architecture\n\n### High-level architecture\n\nThis 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.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/architecture.png\" alt=\"High-level architecture diagram\"/\u003e\n\u003c/p\u003e\n\n### Technologies used\n\n__Communication/Messaging__:\n\n* [AWS AppSync](https://aws.amazon.com/appsync/) for interactions between users and the ecommerce platform.\n* [Amazon API Gateway](https://aws.amazon.com/api-gateway/) for service-to-service synchronous communication (request/response).\n* [Amazon EventBridge](https://aws.amazon.com/eventbridge/) for service-to-service asynchronous communication (emitting and reacting to events).\n\n__Authentication/Authorization__:\n\n* [Amazon Cognito](https://aws.amazon.com/cognito/) for managing and authenticating users, and providing JSON web tokens used by services.\n* [AWS Identity and Access Management](https://aws.amazon.com/iam/) for service-to-service authorization, either between microservices (e.g. authorize to call an Amazon API Gateway REST endpoint), or within a microservice (e.g. granting a Lambda function the permission to read from a DynamoDB table).\n\n__Compute__:\n\n* [AWS Lambda](https://aws.amazon.com/lambda/) as serverless compute either behind APIs or to react to asynchronous events.\n\n__Storage__:\n\n* [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) as a scalable NoSQL database for persisting informations.\n\n__CI/CD__:\n\n* [AWS CloudFormation](https://aws.amazon.com/cloudformation/) with [AWS Serverless Application Model](https://aws.amazon.com/serverless/sam/) for defining AWS resources as code in most services.\n* [AWS Cloud Development Kit (CDK)](https://aws.amazon.com/cdk/) for defining AWS resources as code in the [payment-3p](payment-3p/) service.\n* [Amazon CodeCommit](https://aws.amazon.com/codecommit/) as a repository to trigger the CI/CD pipeline.\n* [Amazon CodeBuild](https://aws.amazon.com/codebuild/) for building artifacts for microservices and running tests.\n* [Amazon CodePipeline](https://aws.amazon.com/codepipeline/) for orchestrating the CI/CD pipeline to production.\n\n__Monitoring__:\n\n* [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) for metrics, dashboards, log aggregation.\n* [AWS X-Ray](https://aws.amazon.com/xray/) for tracing across AWS services and across microservices.\n\n### Backend services\n\n|  Services  | Description                               |\n|------------|-------------------------------------------|\n| [users](users/) | Provides user management, authentication and authorization. |\n| [products](products/) | Source of truth for products information. |\n| [orders](orders/) | Manages order creation and status. |\n| [warehouse](warehouse/) | Manages inventory and packaging orders. |\n| [delivery](delivery/) | Manages shipping and tracking packages. |\n| [delivery-pricing](delivery-pricing/) | Pricing calculator for deliveries. |\n| [payment](payment/) | Manages payment collection and refunds. |\n| [payment-3p](payment-3p/) | Simulates a third party payment system. |\n\n### Frontend service\n\n|  Services  | Description                               |\n|------------|-------------------------------------------|\n| [frontend-api](frontend-api/) | User-facing API for interacting with the services. |\n\n### Infrastructure services\n\n|  Services  | Description                               |\n|------------|-------------------------------------------|\n| [pipeline](pipeline/) | CI/CD pipeline for deploying the resources in production. |\n| [platform](platform/) | Core platform resources for deploying backend services. |\n\n### Shared resources\n\n| Name       | Description                               |\n|------------|-------------------------------------------|\n| [docs](docs/) | Documentation application for all services. |\n| [shared](shared/) | Shared resources accessible for all services, such as common CloudFormation templates and OpenAPI schemas. |\n| [tools](tools/) | Tools used to build services.             |\n\n\n## Documentation\n\nSee the [docs](docs/) folder for the documentation.\n\n## Contributing\n\nSee the [contributing](CONTRIBUTING.md) and [getting started](docs/getting_started.md) documents to learn how to contribute to this project.\n\n## License\n\nThis library is licensed under the MIT-0 License. See the LICENSE file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws-samples%2Faws-serverless-ecommerce-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faws-samples%2Faws-serverless-ecommerce-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws-samples%2Faws-serverless-ecommerce-platform/lists"}