## Proposed solution ![image1](https://i.imgur.com/w6ZvrvZ.jpg) ## Reasoning ### API Gateway & Lambda Costs are close to $ 0.00 as they're billed by usage. The Lambda function will request the data for the requested shipper. This identification will happen through shipper's uuid. Chances of exploint a random uuid is unrealistic. Most important is that serverless should allow us to quickly iterate over this product as we don't need to spend time waiting for platform or anything like that; We just deploy it and we're good. Later on, if product proves itself we should redesign original solution. ### S3 There's no need to use a database. All we need is to store a JSON containing all information required to build the report. Therefore S3 is the cheapest option. ### Cognito Fastest and cheapest approach to provide a user database. We'll need to authenticate users somehow. This is not required for a first iteration and can be seem as a second layer of security (See API Gateway & Lambda). ### Airflow We should use airflow to create such JSON files; We can run it once a month for all shippers and store the result into S3. We can even go one step ahead to trigger the e-mail after successfully creating the file.