Lambda functions have been developed using the NodeJS framework. The main purpose of the Lambda function is to obtain data from external services and pass it to workers. AWS Lambda has been selected since it will automatically scale and execute the code – from several requests per day, up to thousands per one second. For deployment, SAM (AWS Serverless Application Model) is leveraged. AWS SAM makes it easy to organize related components and resources, and operate on a single stack.
The infrastructure (Infrastructure as a Code) is described by Terraform and is stored on Github. There are separate config files for different stages (dev, stage, prod). Terraform state is the mechanism via which it keeps track of resources that are actually deployed in the cloud. In this particular case, the state is stored in S3 Bucket.