Skip to content

PlantBasedPizza - A Pizza restaurant for playing around with architecture patterns.

License

Notifications You must be signed in to change notification settings

jeastham1993/PlantBasedPizza

Repository files navigation

Plant Based Pizza

Note

If you're looking for an Azure implementation using Azure Container Apps and Dapr, checkout the azure branch

Warning

Deploying resources in this repo may incur costs in your own AWS accounts.**

A reference serverless application implementing an online pizza restaurant using an event-driven architecture. If you want to build along with me, I'll be live streaming weekly on Twitch and YouTube as I add more functionality to the application. Links to all live stream recordings and schedule can be found here.

High Level Architecture Diagram

Plant Based Pizza homepage screenshot

The application demonstrates various best practices and ways of building serverless applications across a range of different runtimes. The backend is made up of 7 seperate services:

  • Orders (.NET) .github/workflows/build-order-services.yaml
  • Kitchen (NodeJS).github/workflows/build-kitchen-services-node.yaml
  • Recipes (Java).github/workflows/build-recipe-services-java.yaml
  • Delivery (.NET).github/workflows/build-delivery-services.yaml
  • Payment (.NET) .github/workflows/build-payment-services.yaml
  • Loyalty Points (.NET).github/workflows/build-loyalty-services.yaml
  • Account (.NET).github/workflows/build-account-services.yaml

Overtime, each service will run using a different runtime. Architecturally, most of the services follow a similar pattern of running a web workload on ECS Fargate to handle traffic from the UI. The majority of the processing runs asynchronous on AWS Lambda.

It is not recommended to purposefully build an application using every possible runtime, this is for example purposes only

Deploy

All deployments run through automated CICD pipelines, with integration tests in some of the services. Unit & integration testing, as well as CICD best practices for serverless applications will be added in upcoming streams.

Deployment instructions into your own account to follow

Understand

Service Map

The application is fully instrumented using Datadog native observability tooling.

IMPORTANT: A fully OpenTelemetry enabled implementation is in the works

About

PlantBasedPizza - A Pizza restaurant for playing around with architecture patterns.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published