Great article, we used a combination of AWS API Gateway, dynamo, lambda and cognito for our solution. There are some downsides of which I'd like to mention one for the API Gateway:
AWS API Gateway has a max timeout of ~30 seconds.
If you create an endpoint with API Gateway that invokes a lambda function, then chances are that the gateway will send a 504 - timeout back, even though the lambda has been invoked. This design in the AWS Gateways forces you to write asynchronous calls/behaviour! So you better be comfortable with that if you want to go this route