Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cdk-patterns/serverless

This is intended to be a repo containing all of the official AWS Serverless architecture patterns built with CDK for developers to use. All patterns come in Typescript and Python with the exported CloudFormation also included.
https://github.com/cdk-patterns/serverless

appsync aws aws-cdk cdk cloudformation dynamodb eventbridge graphql lambda-destinations lambda-functions python serverless sns sqs stepfunctions typescript

Last synced: 21 days ago
JSON representation

This is intended to be a repo containing all of the official AWS Serverless architecture patterns built with CDK for developers to use. All patterns come in Typescript and Python with the exported CloudFormation also included.

Awesome Lists containing this project

README

        

This is intended to be a repo containing all of the official AWS Serverless architecture patterns built with AWS CDK for developers to use.

Follow [@CdkPatterns](https://twitter.com/cdkpatterns) for live discussion / new pattern announcements. I plan to add a new pattern weekly so check back regularly!

You can also check out our [Deconstructing CDKPatterns](https://www.youtube.com/channel/UCuR3jnWEnxx1G2axUMVaogg) YouTube channel for in depth walk throughs of the patterns.

Note, this is maintained by [@nideveloper](https://twitter.com/nideveloper) not AWS. For my motivation, please read this [blog post](https://www.mattcoulter.com/blog/post/2)

## New to AWS CDK?

* To learn more visit the [AWS getting started guide](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html)
* To do a workshop on CDK visit [cdkworkshop.com](https://cdkworkshop.com)
* Visit the [Hey CDK "How To" series](https://garbe.io/blog/2019/09/11/hey-cdk-how-to-migrate/) for some detailed answers
* Check out [Awesome CDK](https://github.com/eladb/awesome-cdk) for a curated list of awesome projects related to CDK

## Pattern Usage
All patterns are available in Typescript and Python so pick your favourite language! Note the Typescript patterns all include unit tests but right now I have not seen a standard python testing approach

You can always clone this repo which contains every pattern in python/typescript but if you just want a single pattern in one language follow these steps:

### 1) Choose your pattern
Browse the "Grouped Alphabetically" patterns list below or run:

```bash
npx cdkp list
```

### 2) Download Pattern In Python or Typescript CDK
>Something to be aware of is that the Python version may reuse the JS lambdas from the TypeScript version. This is to reduce the amount of development effort when creating these patterns. It means at launch the TypeScript and Python patterns are effectively identical when deployed but you get the choice of Python or TypeScript for the CDK implementation.
>
>I will look to refactor the Python patterns slowly to full Python after initial launch. If you want to help with this effort, pull requests are always welcome!

TypeScript


All Patterns support the same commands so you can just run:



```bash
npx cdkp init {pattern-name}
cd {pattern-name}
npm run test
# requires you to be using cloud9 or have ran aws configure to setup your local credentials
npm run deploy
```

Python


The CDK CLI is still installed via npm so make sure you have the latest version of node installed or the npx commands will fail. Then you can just run:



```bash
npx cdkp init {pattern-name} --lang=python
cd {pattern-name}

# create a virtual env and install your dependencies
python -m venv .env
source .env/bin/activate
pip install -r requirements.txt

# test everything is working by outputting the cloudformation
npx cdk synth
# requires you to be using cloud9 or have ran aws configure to setup your local credentials
npx cdk deploy
```

## Patterns

[The Filter Pattern By Component Used Page](https://www.serverless-patterns.co.uk/patterns/) allows you to filter patterns by a serverless component e.g. Lambda or API Gateway HTTP API visit, otherwise:


Grouped Alphabetically

#### [Polly](/polly/README.md)
Use Amazon Polly to translate text to speech from inside a Lambda Function. You can also take advantage of Amazon Translate to change the language of the spoken text

![Architecture](polly/img/overview.png)




#### Single Page Application S3 Website Deploy
These are built using https://www.npmjs.com/package/cdk-spa-deploy and allow you to deploy a website in as little as 5 lines of CDK code.

* [S3 Angular Deploy ](/s3-angular-website/README.md)
* [S3 React Deploy ](/s3-react-website/README.md)

![Architecture](https://raw.githubusercontent.com/cdk-patterns/serverless/master/s3-angular-website/img/architecture.PNG)




#### [The Alexa Skill](/the-alexa-skill/README.md)
Deploy an Alexa Skill backed by a Lambda Function and a DynamoDB Table.

![Architecture](the-alexa-skill/img/arch.png)




#### [The Basic MQ](/the-basic-mq/README.md)
In this example we have private Amazon MQ brokers behind an internet-facing network load balancer endpoint using a subdomain.

![Architecture](the-basic-mq/img/the-basic-mq-arch.png)




#### [The Big Fan](/the-big-fan/README.md)
You can integrate API Gateway directly with SNS and then add some resiliency by integrating your event consumers via sqs and message filtering.

![Architecture](the-big-fan/img/the-big-fan-arch.png)




#### [The CloudWatch Dashboard](/the-cloudwatch-dashboard/README.md)
Build and deploy a well architected CloudWatch dashboard with alerts for the simple webservice pattern

![Architecture](the-cloudwatch-dashboard/img/arch2.png)




#### [The Destined Lambda](/the-destined-lambda/README.md)
This is a stock implementation of Lambda Destinations with Amazon EventBridge

You can decouple your event driven architectures with EventBridge rules and now you can strip the custom EventBridge code from your Lambda functions with Lambda Destinations.

![Architecture](the-destined-lambda/img/arch.png)




#### [The Dynamo Streamer](/the-dynamo-streamer/README.md)
This was taken from this [Tweet](https://twitter.com/edjgeek/status/1220227872511496192?s=20)


You can integrate API Gateway directly with DynamoDB and that way your systems can be more resilient! "Code is a liability" so less lambda functions, less liability

![Architecture](https://raw.githubusercontent.com/cdk-patterns/serverless/master/the-dynamo-streamer/img/arch.jpg)




#### [The EFS Lambda](/the-efs-lambda/README.md)
This was taken from this [Blogpost](https://aws.amazon.com/blogs/aws/new-a-shared-file-system-for-your-lambda-functions/)

You can now attach an EFS File System to your Lambda Function for persistence between executions or across different Functions

![Architecture](the-efs-lambda/img/arch2.png)




#### [The EventBridge ATM](/the-eventbridge-atm/README.md)
This was taken from this [Blogpost](https://aws.amazon.com/blogs/compute/integrating-amazon-eventbridge-into-your-serverless-applications/)

You can easily create routing rules in EventBridge to send the same event to multiple sources based on conditions. This example shows you how

![Architecture](the-eventbridge-atm/img/amazon-eventbridge-custom-application-2.png)




#### [The EventBridge Circuit Breaker](/the-eventbridge-circuit-breaker/README.md)
Integrate with unreliable external services? Build a circuit breaker and handle the risk

![Architecture](the-eventbridge-circuit-breaker/img/arch2.PNG)




#### [The EventBridge ETL](/the-eventbridge-etl/README.md)
Build a fully serverless CSV to DynamoDB pipeline

![Architecture](the-eventbridge-etl/img/arch.png)




#### [The Lambda Circuit Breaker](/the-lambda-circuit-breaker/README.md)
Deploy Gunnar Grosch's circuitbreaker-lambda inside a reference architecture

![Architecture](the-lambda-circuit-breaker/img/arch.png)




#### [The Lambda Power Tuner](/the-lambda-power-tuner/README.md)
Use the Lambda Power Tuner state machine to work out the optimum configuration settings for your Lambda Function

![Architecture](the-lambda-power-tuner/img/arch.png)




#### [The Lambda Trilogy](the-lambda-trilogy/README.md)
See the 3 states of Lambda in action (Single Purpose Function, Fat Lambda and Lambda-lith)
![Architecture](the-lambda-trilogy/img/arch2.png)




#### [The Media Live Stream](the-media-live-stream/README.md)
This is an example of how to deploy a Serverless environment to stream live event content.
![Architecture](the-media-live-stream/img/the-media-live-stream.png)




#### [The Predictive Lambda](the-predictive-lambda/README.md)
Deploy a custom Python ML model inside a Docker container running on AWS Lambda
![Architecture](the-predictive-lambda/img/arch_with_cdkp.png)




#### [The RDS Proxy](the-rds-proxy/README.md)
Use RDS Proxy to protect a MySQL RDS Instance from the massively scalable Lambda Function querying it
![Architecture](the-rds-proxy/img/arch_overview.png)




#### [The Saga Step Function](the-saga-stepfunction/README.md)
A mechanism for handling distributed transactions within your system.
![Architecture](the-saga-stepfunction/img/arch.png)




#### [The Scalable Webhook](/the-scalable-webhook/README.md)
Need to integrate a non serverless resource like RDS with a serverless one like Lambda? This is your pattern


![Architecture](https://raw.githubusercontent.com/cdk-patterns/serverless/master/the-scalable-webhook/img/architecture.png)




#### [The Scheduled Lambda](/the-scheduled-lambda/README.md)
Use EventBridge to trigger a Lambda Fuction on a schedule


![Architecture](the-scheduled-lambda/img/the-scheduled-lambda.png)




#### [The Simple GraphQL Service](/the-simple-graphql-service/README.md)
Simple graphQL service built with [AppSync](https://aws.amazon.com/appsync/)


![Architecture](the-simple-graphql-service/img/architecture.png)




#### [The Simple Webservice](/the-simple-webservice/README.md)
The most basic pattern on cdkpatterns, the start of most peoples serverless journey


![Architecture](https://raw.githubusercontent.com/cdk-patterns/serverless/master/the-simple-webservice/img/architecture.png)




#### [The State Machine](/the-state-machine/README.md)
Have complex orchestration logic in your application? Build a state machine

![Architecture](the-state-machine/img/the-state-machine-arch-overview.png)




#### [The WAF API Gateway](/the-waf-apigateway/README.md)
This is a cdk stack to deploy a simple API gateway, and attach a WAF (Web Application Firewall)

![Architecture](the-waf-apigateway/img/the-waf-apigateway.png)




#### [The X-Ray Tracer](the-xray-tracer/README.md)
Learn about using AWS X-Ray for tracing events through your system. This pattern has X-Ray enabled on API Gateway, Lambda, DynamoDB, External HTTP calls, SNS and SQS

![Architecture](the-xray-tracer/img/arch_notitle.png)





Grouped By Pattern Creator




* [Alex Casalboni](#alex-casalboni)
* [Andrew Frazer](#andrew-frazer)
* [Ariadna Sanchez](#ariadna-sanchez)
* [Chris Plankey](#chris-plankey)
* [Christian Mueller](#christian-mueller)
* [Danilo Poccia](#danilo-poccia)
* [Eric Johnson](#eric-johnson)
* [Gerald Stewart](#gerald-stewart)
* [Gunnar Grosch](#gunnar-grosch)
* [Heitor Lessa](#heitor-lessa)
* [Hervé Nivon](#hervé-nivon)
* [James Beswick](#james-beswick)
* [Jeremy Daly](#jeremy-daly)
* [Joppe Pelzer](#joppe-pelzer)
* [Leandro Damascena](#leandro-damascena)
* [Matt Coulter](#matt-coulter)
* [Thorsten Hoeger](#thorsten-hoeger)
* [Vyas Sarangapani](#vyas-sarangapani)
* [Wallace Printz](#wallace-printz)
* [Yan Cui](#yan-cui)

### Alex Casalboni
Alex Casalboni profile pic

Musician, Traveler, Software Engineer from Italy. Developer Advocate at @AWS_Italy

Twitter - [@alex_casalboni](https://twitter.com/alex_casalboni)

#### [The Lambda Power Tuner](/the-lambda-power-tuner/README.md)
Use the Lambda Power Tuner state machine to work out the optimum configuration settings for your Lambda Function

![Architecture](the-lambda-power-tuner/img/arch.png)




### Andrew Frazer
Andrew Frazer profile pic

Github - [@mrpackethead](https://github.com/mrpackethead)

#### [The WAF API Gateway](/the-waf-apigateway/README.md)
This is a cdk stack to deploy a simple API gateway, and attach a WAF (Web Application Firewall)

![Architecture](the-waf-apigateway/img/the-waf-apigateway.png)




### Ariadna Sanchez
Ariadna Sanchez profile pic

Ariadna Sanchez is a Research Scientist investigating the application of DL/ML technologies in the area of text-to-speech. After completing a bachelor’s in Audiovisual Systems Engineering, she received her MSc in Speech and Language Processing from University of Edinburgh in 2018. She has previously worked as an intern in NLP and TTS. During her time at University, she focused on TTS and signal processing, especially in the dysarthria field. She has experience in Signal Processing, Deep Learning, NLP, Speech and Image Processing. In her free time, Ariadna likes playing the violin, reading books and playing games.

#### [Polly](/polly/README.md)
Use Amazon Polly to translate text to speech from inside a Lambda Function. You can also take advantage of Amazon Translate to change the language of the spoken text

![Architecture](polly/img/overview.png)




### Chris Plankey
Chris Plankey profile pic

CTO of MaverickApp.io, AWS Portsmouth User Group Co-Organizer and AWS Community Builder.

Github - [@cplankey](https://github.com/cplankey)

Twitter - [@serverlesschris](https://twitter.com/serverlesschris)

#### [The Alexa Skill](/the-alexa-skill/README.md)
Deploy an Alexa Skill backed by a Lambda Function and a DynamoDB Table.

![Architecture](the-alexa-skill/img/arch.png)




### Christian Mueller
Christian Mueller profile pic

Solutions Architect @ AWS & Apache Member @ ASF

Github - [@muellerc](https://github.com/muellerc)

#### [The Basic MQ](/the-basic-mq/README.md)
In this example we have private Amazon MQ brokers behind an internet-facing network load balancer endpoint using a subdomain.
![Architecture](the-basic-mq/img/the-basic-mq-arch.png)




### Danilo Poccia
Danilo Poccia profile pic

Chief Evangelist (EMEA) @AWSCloud. Mostly Serverless, IoT, AI/ML. Few pics. Some music. My opinions. Complexity is a science. http://pronoun.is/he

Twitter - [@danilop](https://twitter.com/danilop)

#### [The EFS Lambda](/the-efs-lambda/README.md)
This was taken from this [Blogpost](https://aws.amazon.com/blogs/aws/new-a-shared-file-system-for-your-lambda-functions/)

You can now attach an EFS File System to your Lambda Function for persistence between executions or across different Functions

![Architecture](the-efs-lambda/img/arch2.png)




### Eric Johnson
Eric Johnson profile pic

Christian, husband, dad of 5, musician, Senior Developer Advocate - Serverless for @AWScloud. Opinions are my own. #Serverless #ServerlessForEveryone

Twitter - [@edjgeek](https://twitter.com/edjgeek)

Youtube - [bit.ly/edjgeek](https://bit.ly/edjgeek)

#### [The Dynamo Streamer](/the-dynamo-streamer/README.md)
This was taken from this [Tweet](https://twitter.com/edjgeek/status/1220227872511496192?s=20)


You can integrate API Gateway directly with DynamoDB and that way your systems can be more resilient! "Code is a liability" so less lambda functions, less liability

![Architecture](https://raw.githubusercontent.com/cdk-patterns/serverless/master/the-dynamo-streamer/img/arch.jpg)




### Gerald Stewart
Gerald Stewart profile pic

Software Engineer @Liberty_IT

Twitter - [@_gerald20](https://twitter.com/_gerald20)

#### [The Scheduled Lambda](/the-scheduled-lambda/README.md)
Use EventBridge to trigger a Lambda Fuction on a schedule

![Architecture](the-scheduled-lambda/img/the-scheduled-lambda.png)




### Gunnar Grosch
Gunnar Grosch profile pic

Senior Developer Advocate @awscloud

Twitter - [@GunnarGrosch](https://twitter.com/GunnarGrosch)

Blog - [grosch.se](https://grosch.se/)

#### [The Lambda Circuit Breaker](/the-lambda-circuit-breaker/README.md)
Deploy Gunnar Grosch's circuitbreaker-lambda inside a reference architecture

![Architecture](the-lambda-circuit-breaker/img/arch.png)




### Heitor Lessa
Heitor Lessa profile pic

Principal Serverless Lead, Well-Architected @ AWS

Twitter - [@heitor_lessa](https://twitter.com/heitor_lessa)

#### [The Big Fan](/the-big-fan/README.md)
You can integrate API Gateway directly with SNS and then add some resiliency by integrating your event consumers via sqs and message filtering.

![Architecture](the-big-fan/img/the-big-fan-arch.png)

#### [The Saga Step Function](the-saga-stepfunction/README.md)
A mechanism for handling distributed transactions within your system.
![Architecture](the-saga-stepfunction/img/arch.png)




### Hervé Nivon
Hervé Nivon profile pic

Startup Solutions Architect @AWScloud ★ Founder ★ Focus on #Innovation, #Cloud, #Startup, #AI ★ #Geek, #Curious & #Epicurean ★

Twitter - [@hervenivon](https://twitter.com/hervenivon)

Github - [@hervenivon](https://github.com/hervenivon/aws-experiments-data-ingestion-and-analytics)

#### [The EventBridge ETL](/the-eventbridge-etl/README.md)
Build a fully serverless CSV to DynamoDB pipeline

![Architecture](the-eventbridge-etl/img/arch.png)




### James Beswick
James Beswick profile pic

☁️🥑 Dev Advocate @AWScloud Serverless

Twitter - [@jbesw](https://twitter.com/jbesw)

Blog - [medium.com/@jbesw](https://medium.com/@jbesw)

#### [The EventBridge ATM](/the-eventbridge-atm/README.md)
This was taken from this [Blogpost](https://aws.amazon.com/blogs/compute/integrating-amazon-eventbridge-into-your-serverless-applications/)

You can easily create routing rules in EventBridge to send the same event to multiple sources based on conditions. This example shows you how

![Architecture](the-eventbridge-atm/img/amazon-eventbridge-custom-application-2.png)




### Jeremy Daly
jeremy daly profile pic

AWS Serverless Hero/🥑 & host of @ServerlessChats. I build web & open source stuff, blog, speak, and publish http://OffByNone.io every week. CTO @AlertMeNews.

Twitter - [@jeremy_daly](https://twitter.com/jeremy_daly)

Blog - [jeremydaly.com](https://www.jeremydaly.com/)

These patterns are from https://www.jeremydaly.com/serverless-microservice-patterns-for-aws/

#### [The Lambda Trilogy](the-lambda-trilogy/README.md)
See the 3 states of Lambda in action (Single Purpose Function, Fat Lambda and Lambda-lith)
![Architecture](the-lambda-trilogy/img/arch2.png)

#### [The Simple Webservice](/the-simple-webservice/README.md)
The most basic pattern on cdkpatterns, the start of most peoples serverless journey


![Architecture](https://raw.githubusercontent.com/cdk-patterns/serverless/master/the-simple-webservice/img/architecture.png)

#### [The Scalable Webhook](/the-scalable-webhook/README.md)
Need to integrate a non serverless resource like RDS with a serverless one like Lambda? This is your pattern


![Architecture](https://raw.githubusercontent.com/cdk-patterns/serverless/master/the-scalable-webhook/img/architecture.png)

#### [The State Machine](/the-state-machine/README.md)
Have complex orchestration logic in your application? Build a state machine

![Architecture](the-state-machine/img/the-state-machine-arch-overview.png)

#### [The EventBridge Circuit Breaker](/the-eventbridge-circuit-breaker/README.md)
Integrate with unreliable external services? Build a circuit breaker and handle the risk

![Architecture](the-eventbridge-circuit-breaker/img/arch2.PNG)




### Joppe Pelzer
Joppe Pelzer profile pic

Joppe Pelzer is a Language Engineer working on text-to-speech for English and building style voices. With bachelor’s degrees in linguistics and Scandinavian languages, she graduated from Edinburgh University with an MSc in Speech and Language Processing in 2018. During her masters she focused on the text-to-speech front end, building and expanding upon multilingual G2P models, and has gained experience with NLP, Speech recognition and Deep Learning. Outside of work, she likes to draw, play games, and spend time in nature.

#### [Polly](/polly/README.md)
Use Amazon Polly to translate text to speech from inside a Lambda Function. You can also take advantage of Amazon Translate to change the language of the spoken text

![Architecture](polly/img/overview.png)




### Leandro Damascena
Leandro Damascena profile pic

Cloud Solutions Architect, Writer http://leandrodamascena.medium.com and Open-source enthusiast.

#### [The Media Live Stream](the-media-live-stream/README.md)
This is an example of how to deploy a Serverless environment to stream live event content.
![Architecture](the-media-live-stream/img/the-media-live-stream.png)




### Matt Coulter
nideveloper profile pic

Software Architect, working for @Liberty_IT in Belfast. Passionate about #Serverless, #AWS, @cdkpatterns, #TCO, CI/CD and #TrunkBasedDev.

Twitter - [@nideveloper](https://twitter.com/nideveloper)

Blog - [mattcoulter.com](https://www.mattcoulter.com)


#### Single Page Application S3 Website Deploy
These are built using https://www.npmjs.com/package/cdk-spa-deploy and allow you to deploy a website in as little as 5 lines of CDK code.

* [S3 Angular Deploy ](/s3-angular-website/README.md)
* [S3 React Deploy ](/s3-react-website/README.md)

![Architecture](https://raw.githubusercontent.com/cdk-patterns/serverless/master/s3-angular-website/img/architecture.PNG)

#### [The CloudWatch Dashboard](/the-cloudwatch-dashboard/README.md)
Build and deploy a well architected CloudWatch dashboard with alerts for the simple webservice pattern

![Architecture](the-cloudwatch-dashboard/img/arch2.png)

#### [The Destined Lambda](/the-destined-lambda/README.md)
This is a stock implementation of Lambda Destinations with Amazon EventBridge

You can decouple your event driven architectures with EventBridge rules and now you can strip the custom EventBridge code from your Lambda functions with Lambda Destinations.

![Architecture](the-destined-lambda/img/arch.png)

#### [The Predictive Lambda](the-predictive-lambda/README.md)

Deploy a custom Python ML model inside a Docker container running on AWS Lambda

![Architecture](the-predictive-lambda/img/arch_with_cdkp.png)

#### [The RDS Proxy](the-rds-proxy/README.md)
Use RDS Proxy to protect a MySQL RDS Instance from the massively scalable Lambda Function querying it

![Architecture](the-rds-proxy/img/arch_overview.png)

#### [The X-Ray Tracer](the-xray-tracer/README.md)
Learn about using AWS X-Ray for tracing events through your system. This pattern has X-Ray enabled on API Gateway, Lambda, DynamoDB, External HTTP calls, SNS and SQS

![Architecture](the-xray-tracer/img/arch_notitle.png)




### Thorsten Hoeger
Thorsten Hoeger profile pic

Cloud Evangelist, CEO @ Taimos GmbH [@taimosgmbh](https://twitter.com/taimosgmbh) - [AWS Community Hero](http://aws.amazon.com/de/heroes/) - AWS, Alexa, Serverless, Gemeinderat [@fw_reichenbach](https://twitter.com/fw_reichenbach)

Twitter - [@hoegertn](https://twitter.com/hoegertn)

LinkTree - [@hoegertn](https://linktr.ee/hoegertn)

#### [The Simple GraphQL Service](/the-simple-graphql-service/README.md)
Simple graphQL service built with [AppSync](https://aws.amazon.com/appsync/)


![Architecture](the-simple-graphql-service/img/architecture.png)

### Vyas Sarangapani
Vyas Sarangapani profile pic

Software Developer, SAP Cloud Applications Architect, Block chain Evangelist, Marathoner, Ultra Runner, Information Junkie, Ambivert

Twitter - [@madladvyas](https://twitter.com/madladvyas)

Medium - [@svyasrao22](https://medium.com/@svyasrao22)

#### [The EventBridge ETL](/the-eventbridge-etl/README.md)
Build a fully serverless CSV to DynamoDB pipeline

![Architecture](the-eventbridge-etl/img/arch.png)

### Wallace Printz
Wallace Printz profile pic

Wallace Printz is a Senior Solutions Architect based in Austin, Texas. He helps customers across Texas transform their businesses in the cloud. He has a background in Semiconductors, R&D, and Machine Learning.

Twitter - [@WallacePrintz](https://twitter.com/WallacePrintz)

Github - [@WPrintz](https://github.com/WPrintz)

#### [The Basic MQ](/the-basic-mq/README.md)
In this example we have private Amazon MQ brokers behind an internet-facing network load balancer endpoint using a subdomain.
![Architecture](the-basic-mq/img/the-basic-mq-arch.png)

### Yan Cui
Yan Cui profile pic

AWS Serverless Hero | Independent Consultant | Author | Trainer | Speaker | Developer Advocate at [@Lumigo](https://twitter.com/Lumigo) | Teacher of [@LearnLambda](https://twitter.com/LearnLambda) | Host of [@RealWorldSls](https://twitter.com/RealWorldSls)

Twitter - [@theburningmonk](https://twitter.com/theburningmonk)

Blog - [theburningmonk.com](https://theburningmonk.com/)

#### [The Lambda Trilogy](the-lambda-trilogy/README.md)
See the 3 states of Lambda in action (Single Purpose Function, Fat Lambda and Lambda-lith)
![Architecture](the-lambda-trilogy/img/arch2.png)

#### [The Saga Step Function](the-saga-stepfunction/README.md)
A mechanism for handling distributed transactions within your system.
![Architecture](the-saga-stepfunction/img/arch.png)

## Serverless Well Architected Pattern Matcher

The [AWS Well-Architected](https://aws.amazon.com/architecture/well-architected/) Framework helps you understand the pros and cons of
decisions you make while building systems on AWS. By using the Framework, you will
learn architectural best practices for designing and operating reliable, secure, efficient,
and cost-effective systems in the cloud. It provides a way for you to consistently
measure your architectures against best practices and identify areas for improvement.
We believe that having well-architected systems greatly increases the likelihood of
business success.

[Serverless Lens Whitepaper](https://d1.awsstatic.com/whitepapers/architecture/AWS-Serverless-Applications-Lens.pdf)

[Well Architected Whitepaper](http://d0.awsstatic.com/whitepapers/architecture/AWS_Well-Architected_Framework.pdf)

For patterns matched with their best practices from the relevant AWS Well Architected pillar please visit:

### [The Well Architected Pattern Matcher](https://www.serverless-patterns.co.uk/patterns/well-architected/)

## External Patterns

[External Patterns Page](EXTERNAL_PATTERNS.md)

## Contributing
I hope for this to be something the whole cdk community contributes to so feel free to fork this repo and open up a pull request. For full details see our [Contributing Guidelines](CONTRIBUTING.md)