Serverless design patterns

By Yan Cui

Talk Abstract:

Serverless technologies like AWS Lambda has drastically simplified the task of building reactive systems - drop a file into S3 and a Lambda function would be triggered to process it, push an event into a Kinesis stream and magically it'll be processed by a Lambda function in real-time, you can even use Lambda to automate the process of auditing and securing your AWS account by automatically reacting to rule violations to your security policy.

The motivation for this talk is two-fold:

  1. to show the audience to some common design patterns that they can quickly adopt, but perhaps even more important
  2. to expose the audience to a framework of thinking about the tradeoffs and failure modes with their choice of event sources for Lambda - eg. SNS creates a concurrent execution for Lambda for each message, which makes it a great choice when you want to maximise parallelism, but a terrible choice as a queue between services (to amortise spikes in upstream traffic)

About Yan Cui

Yan is an experienced engineer who has worked with AWS for nearly 10 years. He has been an architect and lead developer with a variety of industries ranging from investment banks, e-commence to mobile gaming. In the last 2 years he has worked extensively with AWS Lambda in production, and he has been very active in sharing his experiences and the lessons he has learnt, some of his work has even made their way into the Serverless Well-Architected whitepaper published by AWS.

Yan is polyglot in both spoken and programming languages, he is fluent in both English and Mandarin, and counts C#, F#, Scala, Node.js and Erlang amongst programming languages that he has worked with professionally. Although he enjoys learning different programming languages and paradigms, he still holds F# as his undisputed favourite.

Yan is a regular speaker at user groups and conferences internationally, and he is also the author of AWS Lambda in Motion and a co-author of F# Deep Dives. In his spare time he keeps an active blog at where he shares his thoughts on topics such as AWS, serverless, functional programming and chaos engineering.