Lambda

The biggest preinvent serverless announcements you may have missed

re:Invent is almost upon us. Judging by the things that had been announced ahead of re:Invent, one can’t help but be excited about the main event itself! Here is a list of the serverless-related announcements so far that you should know about. Payload-based message filtering for Amazon SNS Here’s the official announcement. This is arguably the …

The biggest preinvent serverless announcements you may have missed Read More »

How to work around CloudFormation circular dependencies

An interesting question came up on the AppSync Masterclass forum, and it highlights a common way you can get into CloudFormation circular dependencies. In the CloudFormation stack, there is an AppSync API, which uses a Cognito User Pool for authentication and authorization. When a user signs up, the app should fire an update on a …

How to work around CloudFormation circular dependencies Read More »

My testing strategy for serverless applications

As a consultant, I have helped a lot of clients with their architecture and built a couple of serverless applications for clients from scratch. And the no. 1 question I get about serverless is around testing. “How should I test these cloud-hosted functions?” “Should I use local simulators?” “How do I run these in my …

My testing strategy for serverless applications Read More »

How to handle client errors gracefully with AppSync and Lambda

With API Gateway and Lambda, you can handle client errors gracefully by returning a 4xx response. module.exports.handler = async (event) => { // run validation logic return { statusCode: 400 } } This way, we can communicate clearly to the client that there’s a problem with its request. It also lets the Lambda invocation complete …

How to handle client errors gracefully with AppSync and Lambda Read More »

Lambda layer: not a package manager, but a deployment optimization

It’s been two years since I last wrote about Lambda layer and when you should use it. Most of the problem I discussed in that original post still stands: It makes it harder to test your functions locally. You will still need those dependencies to execute your function code locally as part of your tests. …

Lambda layer: not a package manager, but a deployment optimization Read More »

Building a custom IAM system has made me appreciate AWS IAM even more

In the last post I discussed my preferred approach for modelling multi-tenant applications with AppSync and Cognito. This approach supports the common requirements in these applications, where there are a number of distinct roles within each tenant. This approach (and others like it) works great when the tenants are isolated. But what if they are …

Building a custom IAM system has made me appreciate AWS IAM even more Read More »

Production-Ready Serverless is back!

My Production-Ready Serverless workshop is back in January 2021 and will feature all the latest changes and features from re:Invent 2020. This is a hands-on workshop where you will learn best practices for building serverless applications by building an e-commerce solution from scratch. By the end of the workshop, you should have a clear idea when serverless is a …

Production-Ready Serverless is back! Read More »

Choreography vs Orchestration in the land of serverless

Choreography and Orchestration are two modes of interaction in a microservices architecture. In orchestration, there is a controller (the ‘orchestrator’) that controls the interaction between services. It dictates the control flow of the business logic and is responsible for making sure that everything happens on cue. This follows the request-response paradigm. In choreography, every service …

Choreography vs Orchestration in the land of serverless 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