Serverless

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 processing to map-reduce jobs. Why it’s yet another AWS service you need to learn and pay for. And it introduces additional complexities, such as: It’s hard to test [1]. Your business logic is split between configuration …

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

When to use API Gateway vs. Lambda Function URLs

“Lambdalith” is a monolithic approach to building serverless applications where a single Lambda function serves an entire API, instead of one function per endpoint. It’s an increasingly popular approach. It provides portability between Lambda functions and container applications. You can lift and shift an existing application into Lambda without rewriting it. You can use web …

When to use API Gateway vs. Lambda Function URLs Read More »

First impressions of the fastest JavaScript runtime for Lambda

I thought Lambda needed a specialised runtime. One that works well with its resource-constraint execution environment. I even floated a few ideas in the past but sadly I don’t have the chops to make them happen myself. So I was pleasantly surprised when AWS open-sourced the LLRT runtime for JavaScript [1]! What is LLRT? LLRT, or Low …

First impressions of the fastest JavaScript runtime for Lambda Read More »

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 OnFailure destination for every async Lambda function. (sidebar: you should prefer Lambda Destination over DLQs, here’s why [1]) A message arrives in your DLQ. You are alerted right away because you have alarms on all of your DLQs. …

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

How to Securely let Frontend Apps to Directly Access AWS services

Lean manufacturing focuses on minimizing waste while simultaneously maximizing productivity. If you apply the same mindset and look at our applications today, you will find many CRUD APIs that add little value beyond authentication and authorization. That is, they provide authorised access to a database and ensure a user can’t access someone else’s data. However, …

How to Securely let Frontend Apps to Directly Access AWS services Read More »

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 that many students have asked during the Production-Ready Serverless workshop. So here’s my tried-and-tested approach to migrating a live service to a new database without downtime. I’m going to use DynamoDB as an example but it should work with most …

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

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, there’s a common oversight that many developers make when integrating these two services. There are established best practices for configuring Lambda’s EventSourceMapping [1] for Kinesis: Configure an OnFailure destination for failed records. Enable BisectBatchOnFunctionError. Override MaximumRetryAttempts. Choose a …

The one mistake everyone makes when using Kinesis with Lambda Read More »

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 State of Serverless report [1]. Yet, its appeal has waned over time due to the lack of innovation in recent years, prompting users to explore other options. Recently, they announced [2] significant updates for Serverless v4: Fees will be introduced …

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

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close