In this series of posts, I will go through the architectural concerns when building a new application. I will also discuss design and development considerations. This series will focus specifically on the AWS Platform.

In earlier posts (Blogs) we decided the App we would design and build is for public consumers. It would be built on the AWS Serverless Platform. It will be a Web App, for now (iOS and Android will come later), with subscriptions. The App back-end will be microservices and the containers will be built with .Net core. We will deploy the containers on AWS Lambda. For storage we will choose DynamoDB as it is the simplest and cheapest to implement. The Front End will be built with Angular and hosted as Static website on AWS S3. We will use AWS Cognito for user sign in and management. Amazon SES will handle email processing. Amazon SQS will be used for decoupling API. As per the diagram above, the Architecture will be:
- Build the App on AWS Platform
- Front-end Angular app hosted on S3 buckets with AWS CloudFront as CDN
- Back-End .Net APIs deployed as containers on AWS Lambda
- Amazon API Gateway: to expose the back-end APIs and provide protection.
- Amazon Cognito, for user registration login and management.
- Amazon SES to send emails to users for verification, subscription information and payments.
- Amazon DynamoDB to store app data.
- PayPal for monetizing the app and collecting payments.
- Amazon SQS to decouple the APIs from PayPal API calling.
- Amazon Secret Manager to store PayPal API credentials.
- Amazon Cloud Formation for deployments.
- Amazon Cloud Watch to monitor the App.
At the last blog I asked this question: How about we actually build and deploy this design? And I answered as follows:
I know Architects have the reputation of just drawing diagrams and writing design documents architecture docs etc. Well, Not me I actually started build such an app and will post a blog about it soon.
So here is the App live and running on AWS at https://www.WeightMan.ca

