MyBlog.com
- This website should scale globally.
- Blogs are rarely written, but often read.
- Some of the website is purely static files, the rest is a dynamic REST API.
- Caching must be implemented, where possible.
- Any new users that subscribes should receive a welcome Email.
- Any photo uploaded to the blog should have a thumbnail generated.
Solution
- Static content being distributed using CloudFront with S3.
- REST API was serverless, didn't need Cognito because public.
- Global DynamoDB table to server the data globally.
- Aurora Global database also a valid option.
- Enabled DynamoDB streams to trigger a Lambda function.
- Lambda function had an IAM role which could use SES.
- SES was used to send emails in a serverless way.
- S3 can trigger SQS / SNS / Lambda to notify of events.
User Welcome email flow

Thumbnail Generator flow
