AWS

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 »

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 catalogue manually recreated resources. Select manually created resources and capture them in a generated CloudFormation template. Concurrently, CDK announced [2] a new cdk migrate command. Which lets you generate a CDK application from CloudFormation. On paper, these sound amazing! It …

First impressions of CloudFormation’s IaC generator and CDK migrate 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 create Private DynamoDB tables accessible only within a VPC

DynamoDB is a fully managed NoSQL database service known for its low latency and high scalability. Like most other AWS services, it’s protected by AWS IAM. So, despite being a publically accessible service, your data is secure. Conversely, zero-trust networking tells us we should always authenticate the caller and shouldn’t trust someone just because they’re …

How to create Private DynamoDB tables accessible only within a VPC 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 »

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