Our serverless superhero this week is Lee Priest, software engineer at the LEGO Group and AWS Community Builder. Lee writes great content about serverless on his blog and is a wonderful advocate for his peers at the LEGO Group. He’s also a big Step Functions fan, which always cuts straight to my heart (in a good way). Thank you Lee, for bringing serverless to the hands of many and for encouraging others to get out there and contribute!
I’ve seen a bunch of serverless testing content rolling in lately. But I particularly like Daniele Frasca’s article from last week. He talks about the different types of testing, the objectives of each type, and how they build on one another. Daniele does a great job convincing readers that serverless testing is not complicated, it just requires some effort.
Marcia Villalba released a video taking us through Amazon CodeWhisperer. This is a great video that helps traverse some of the nuances of the service. She shows how to prompt the service, what to do when it doesn’t give you what you expect, and how to trigger it to give you something else. In the video, she shows how to use it to write function code as well as how to use it to write things in the CDK. I’m all for productivity tools and CodeWhisperer is a great one that integrates directly into VSCode.
Speaking of AI productivity tools, a couple of months ago I (Allen Helton) released a service that generates workouts using OpenAI and emails them to you every day. I was happy with it for a while, but I couldn’t leave well enough alone. I revamped the service, built a ChatGPT conversational Lambda function, and added a UI on top of it for the community to use for free. This has turned into a great project that has helped me learn a ton of new skills and is providing great reference material for others.
Part of a true production-ready application is a solid disaster recovery plan. SLA’s, RTO’s, and RPO’s might sound like a bunch of gibberish but are actually a very real part of production readiness. But what does it all mean and how do you define them? Ran Isenberg published an article last week that takes you through it step by step. He defines the slew of acronyms and tells you how to estimate up-time and improve your serverless disaster recovery strategy. It’s a topic we seldom discuss in the community, but one that is absolutely necessary.
Michael Walmsley just made it on my good list. Last week he wrote about getting into an observability mindset with serverless. He describes why it’s important and what you can do to make strides toward building with observability in mind. #yearofobservability
Many of us use ChatGPT to help us write code. But Anna Geller took it to the next level. Last week she published a blog and video on how she used ChatGPT to build a fully tested API in Python and deploy it to the cloud in 5 minutes. She hosts the API with AppRunner and has to change very little to get a working sentiment analysis app up and running in less time than it took me to write this newsletter.
Lambda received a massive update with response payload streaming. Instead of typical request/response invocations, you now have the option to stream results back to a caller as you fetch them.
AppSync can now publish events directly to EventBridge. This is a big one that allows you to react to changes directly from your GraphQL APIs.
Amazon CodeWhisperer left preview mode and went GA last week. Here come the code-generated productivity boosts!
In more AI news, AWS announced two new models, Amazon Bedrock and Amazon Titan, to throw their hat into the generative AI ring. I’m excited to hear results trickle in comparing this to ChatGPT and Bard.
Momento released a drop-in replacement for Node.js Redis clients. If you’re thinking about moving to Momento for better availability and costs but don’t want to refactor your code to remove Redis, this will do the trick.
Step Functions is one of the most powerful serverless AWS services available. It orchestrates workflows and provides meaningful traceability. However, it can be a little tricky to handle errors. Yes, it does provide error handling out-of-the-box, but sometimes that can be a bit…. ambiguous. Andreea Merariu published an article that takes us through her journey where she improves error handling and determines if failures can be retried in a Step Function workflow. I’ve been on this journey myself and can speak from experience how hard it is to do what she covers in the article. Well done!
Alex Debrie posed a question to the community last week asking what people using for queuing mechanisms other than SQS. There is a ton of information in the responses and some of them really highlight the collective creativity of developers!
Seeing the top post on HN about moving from RabbitMQ --> Postgres for a task queue.— Alex DeBrie (@alexbdebrie) April 11, 2023
Question for AWS users -- have you ever *not* used SQS for a queue? And if so, what was the reason -- missing capabilities, price, performance, something else?
(I freaking love SQS)
I’m in London for the next 2 weeks! If you want to meet to talk about anything cloud, serverless, blogging, etc… let me know and we’ll set something up!