Building a serverless function or an API is easy. However, things get a bit more complicated as your application grows. What works for a few functions often doesn’t work for hundreds of functions and services. As your application grows, you’ll need to evolve your architecture, deployment, monitoring, and tooling.

This talk is a case study of the serverless startup’s architecture evolution. We started with a single Lambda function in early 2018 and evolved our application through multiple stages and architectures. Currently, the application uses CQRS with GraphQL and 200 Lambda functions serving millions of requests. We faced and solved many issues during the last four years, learned many things, and managed to keep our infrastructure costs low.