Our serverless superhero this week is Luciano Mammino, senior architect at fourTheorem and AWS Serverless Hero. Luciano is a man of many talents, he’s a blog writer, fighter, international speaker, and book author, to name a few. He’s also one of the creators of Middy, one of the most popular middleware solutions used in Lambda. Thank you for everything you do for the community, Luciano!
I’ve been seeing a rise in text-to-speech for blog posts lately. It’s a great idea for a weekend project that not only helps you flex your serverless skills but also improves the accessibility of your content. Ran Isenberg shared his implementation and went into detail on the architecture and his design decisions. His code is open-sourced, so if you want to get audio for your posts in a similar fashion, it’s as simple as deploying a CDK template!
A couple weeks ago I sparked some debate online about the simplicity (or lack thereof) of Lambda-based serverless projects. It drove a ton of productive conversation, but I’m probably most happy with one particular outcome. Lee Gilmore wrote about serverless lightweight clean code in response to all the fiery conversations we’ve been having. He shares a revised approach to what he’s been pushing - and I love it. He includes great visuals, detailed explanations, and of course, a working code sample to a minimalist hexagonal architecture with serverless.
Alex DeBrie covered DynamoDB costs last week. His post covers the math you need to do when you’re data modeling. Alex describes three aspects to consider when doing cost analysis: view counts, secondary index consideration, and complex filtering. Without giving away too many spoilers, this post is incredibly helpful for pragmatic design and forecasting app costs.
Speaking of DynamoDB, Marcia Villalba released a video on how to load test it. She guides us through building an observability dashboard (so we know what’s going on) and how to run different tests to stress DynamoDB differently using Artillery. This is a great tutorial on how to make sure your app doesn’t buckle when it hits production.
With all the ruckus over Prime Video moving to ECS from Lambda, it’s nice to see a take that doesn’t jump to rash conclusions. Yan Cui published an article talking about what we can learn from the Prime Video team. He has a similar take to what I mentioned in last week’s newsletter - go serverless to decrease time to market, learn, and adapt architecture based on workload and context.
X-Ray tracing is available for Lambda functions with SnapStart. This update gives you a look into the restoration of your execution environment, which should offer a wave of new insights.
Momento released two new drop-in replacements last week. You can now swap over to Momento Cache if you’re using IORedis or StackExchange by simply changing your import statement and constructor. No changes necessary to your app code!
Baselime CDK has been introduced, a new package that enables developers to effortlessly instrument a CDK application. Using a few lines of Typescript, it allows you to define all your Baselime queries and manage alerts and dashboards within your CDK stack.
We talk regularly about the various benefits of Step Functions, App Runner, Lambda, and direct integrations (API Gateway -> AWS Service). However, we usually talk about them in isolation. Rarely do we see a post that compares the four of them in any sort of benchmark. Last week, I took a stab at comparing latencies of these 4 services at various amounts of scale. I compare the p99, average, and fastest round-trip time for API endpoints backed by each of the services. Which one is fastest? Of course, it depends.
We’re all about optimizations - especially simple ones. Boris Tane shared a one-line change for his Node Lambda functions using v2 of the AWS SDK that took his cold starts from 700ms to 300ms.
an unexpected side effect of this change is a drop in memory usage too
— boris tane (@boristane) May 11, 2023
it's a simple change, in almost all our Lambda functions, we use the ssm client; we used to import it like this
import { SSM } from "aws-sdk";
the change is to use
import SSM from "aws-sdk/clients/ssm"; https://t.co/odCtNvUnTZ pic.twitter.com/aAdCPmAUFX
Are you working on any AI projects? How have you incorporated AI into your serverless apps? Please let me know if you’ve done anything you’re excited about and I’ll share!
If you’d like to make a recommendation for the serverless superhero or for an article you found especially useful, send me a message on Twitter, LinkedIn, or email.
Happy Coding!
Allen
Thank you for subscribing!
View past issues.