Yan Cui

Yan Cui @theburningmonk

About: AWS Serverless Hero. Consultant. Speaker. Trainer. Blogger.

Location:
Amsterdam, Netherlands
Joined:
Apr 19, 2019

Yan Cui
articles - 133 total

Is it safe to use ID tokens with Cognito authorizers?

A common narrative is that one should always use access tokens to call your APIs, while ID tokens are...

Learn More 0 0Sep 14 '24

Fine-grained access control in API Gateway with Cognito groups & Lambda authorizer

In security and access control, authentication and authorization mean two distinct but related...

Learn More 1 0Aug 29 '24

What’s the best way to do fan-out/fan-in serverlessly in 2024?

Back in 2018, I shared [1] several ways to implement fan-out/fan-in with Lambda. A lot has changed...

Learn More 0 0Aug 5 '24

How to handle execution timeouts in AWS Step Functions

Step Functions lets you set a timeout on Task states and the whole execution. By default, a Task...

Learn More 6 0Apr 21 '24

How to apply the TDD mindset to serverless

Testing is an integral part of software development. Your tests are a living documentation of your...

Learn More 0 0Apr 21 '24

Here are four ways you can implement WebSockets using serverless

The myth that “you can’t do WebSockets with serverless” still persists today, even though we have...

Learn More 2 0Apr 3 '24

DynamoDB now supports resource-based policies. But is that a good idea?

DynamoDB announced support for resource-based policies [1] a few days ago. It makes cross-account...

Learn More 0 0Mar 23 '24

When to use Step Functions vs. doing it all in a Lambda function

I’m a big fan of AWS Step Functions. I use it to orchestrate all sorts of workflows, from payment...

Learn More 2 0Mar 11 '24

When to use API Gateway vs. Lambda Function URLs

“Lambdalith” is a monolithic approach to building serverless applications where a single Lambda...

Learn More 0 0Mar 11 '24

First impressions of the fastest JavaScript runtime for Lambda

I thought Lambda needed a specialised runtime. One that works well with its resource-constraint...

Learn More 0 0Feb 28 '24

What’s the best way to migrate Cognito users to a new user pool?

I shared on Linkedin [1] the other day that you should avoid using Cognito subs as the user ID for...

Learn More 3 0Feb 21 '24

How to secure CI/CD roles without burning production to the ground

By now, most of us have moved away from using IAM users for CI/CD pipelines. Instead, we’d use...

Learn More 0 0Feb 21 '24

First impressions of CloudFormation’s IaC generator and CDK migrate

CloudFormation recently announced the IaC generator [1]. It lets you: Scan your AWS account and...

Learn More 0 0Feb 21 '24

How would you reprocess Lambda dead-letter queue messages on demand?

Imagine this… You have followed AWS best practices and set up a dead-letter queue (DLQ) or an...

Learn More 0 0Feb 21 '24

How to create Private DynamoDB tables accessible only within a VPC

DynamoDB is a fully managed NoSQL database service known for its low latency and high...

Learn More 2 0Jan 10 '24

Year in review, 2023

2023 has been a bittersweet year. It started with unpleasant medical news and the subsequent...

Learn More 0 0Jan 1 '24

Direct Access for Frontend Apps to AWS Services: Secure and Cost-Effective

Lean manufacturing focuses on minimizing waste while simultaneously maximizing productivity. If you...

Learn More 1 0Dec 27 '23

How to perform database migration for a live service with no downtime

Migrating the database while continuing to serve user requests can be challenging. It’s a question...

Learn More 0 0Dec 18 '23

The one mistake everyone makes when using Kinesis with Lambda

AWS Kinesis and Lambda are a great combo for processing large amounts of data in real-time. However,...

Learn More 4 0Dec 12 '23

How I implemented web analytics reporting with Timestream

A month ago, I shared how I built an affiliate tracking system in a weekend [1]. Since then, I’ve...

Learn More 1 0Nov 6 '23

Serverless v4 will start charging users, but that’s a good thing

The Serverless Framework remains a top choice for serverless development, as evidenced by the recent...

Learn More 0 0Oct 29 '23

Amplify: how to share code without Lambda Layers or private NPM

Sharing code efficiently across different parts of an application can be challenging with AWS Lambda,...

Learn More 0 0Oct 21 '23

How I built an affiliate tracking system in a weekend with serverless

Having taught thousands of students to build serverless applications via my online courses and...

Learn More 0 1Oct 12 '23

Help! How do I set DeletionPolicy to Retain for production only?

It’s a good practice to use CloudFormation’s DeletionPolicy to protect stateful resources such as...

Learn More 0 0Oct 6 '23

Monthly roundup – September 2023

Hi, here’s a quick round-up of everything I have done in September 2023. Podcast The...

Learn More 0 0Oct 2 '23

Static IP for Lambda: ingress, egress and bypassing the dreaded NAT Gateway

Many vendors require you to have a static IP address for your application. Such that all requests to...

Learn More 2 0Sep 9 '23

Combine Step Functions Standard and Express workflows for fun & profit

Step Functions’ state machines come in two flavours. By understanding their strengths and...

Learn More 0 0Sep 4 '23

Monthly roundup – August 2023

Hi, here’s a quick round-up of everything I have done in August 2023. Real-World Serverless...

Learn More 0 0Sep 1 '23

What’s the most serverless way to wait for a slow HTTP response?

During the last cohort of my Production-Ready Serverless workshop, a student asked: If I have to...

Learn More 0 0Aug 25 '23

SNS to Lambda or SNS to SQS to Lambda, what are the trade-offs?

I had a really good question from one of my students at the Production-Ready Serverless workshop the...

Learn More 0 0Jul 12 '23