#29 Embrace Failures ❤️🔥
This week, our expert is AWS Principal Solutions Architect Ben Moses, our spotlight falls on AWS Head of Go-To-Market Emily Shea, we look at the latest AWS service releases, blog posts, & more!
Welcome
In last week’s issue, our serverless expert was AWS Community Builder Christian Bonzelet, and our spotlight fell on AWS Serverless Hero Angela Timofte!
This week, our serverless expert is AWS Principal Solutions Architect Ben Moses, our spotlight falls on AWS Head of Serverless Go-To-Market Emily Shea, we look at the latest AWS service releases, blog posts, hints and tips, news and more!
This week’s newsletter is sponsored by Leighton.
A Glimpse into My Week 🎤
This week I have been updating the Serverless Advocate website, adding new hero panes for CloudCards and the Serverless Patterns Registry.
🌟 Did you know there are now 97 areas covered, including articles and full example code repos?
🌟 Did you also know CloudCards is a free website for micro-learning across Patterns, Domain-Driven Design, Engineering and CI/CD?
We also had a fun photo shoot this week as an organising team for our upcoming AWS Community Conference, “AWS North”, at the Catalyst in Newcastle, where we will have the conference on the 16th of October. Here is a photo of my colleague Dan Pudwell (AWS North East Meet-up organiser) getting his picture taken.
📰 Articles that caught the eye
Here are some of the stand-out articles I read during the week in the World of Serverless.
⭐ My favourite this week was the article by Luc Van Donkersgoed which gives a great mental model for deciding on the services and languages you use in your solutions.
Nicola Cremaschini discusses ‘Building Atomic Counters with Amazon DocumentDB’ in his long-running series.
Omid Eidivandi has a great article on “Egress Rate Controlling in Distributed Systems (Part 1)“.
Ian Göbl has an interesting article on ‘Single Sign On: Our Experience with Auth0’ at Flipdish.
Zied Ben Tahar discusses “Scheduled queries in Amazon Timestream for LiveAnalytics“.
David Boyne asks “Can a product release too often? Yes, I think it can.”
🎓 Ask the Expert
Each week, I ask a different serverless expert the same three questions to get their personal insights - this week, we have AWS Principal Solutions Architect Ben Moses:
Opinions are the author’s and do not express the views of their employer
1. What is one common mistake you see teams making when implementing serverless solutions, and how can they avoid it?
When teams want to embark on creating a serverless solution, but are more experienced with the traditional solution space, they often equate serverless to AWS Lambda and think of serverless as simply a deployment detail. With this, you see “infrastructure” and business logic as two entirely different things. By thinking of the AWS services as “infrastructure” and not managed services providing a capability that’s part of your app, you miss out on what serverless can deliver. Gregor Hohpe said in a 2023 blog post:
Serverless services are configured as opposed to provisioned. Much of that configuration pertains to the application level.
I’d encourage teams that are getting on the serverless train to spend some time examining their mental model for serverless to make sure they don’t fall into this trap.
Some of your architectural intent will be expressed in the code you write (that may well end up in Lambda), but plenty of it will be in the configuration of other serverless managed services.
2. Which serverless tool or service are you most excited about right now, and why?
My preferred way to spin up my serverless projects is with AWS CDK. Testing the CDK code itself and the expression of the application’s intent is great, but an area I’ve sometimes struggled with is testing code for my Lambda functions in a realistic way - especially when playing with new frameworks or services! One answer for this is to separate your business and implementation logic. There are strategies for doing that like Clean Architecture, Hexagonal Architecture, Onion Architecture, and others. Some organisations choose not to go down this sort of path though, sometimes for good reason. I recently came across a cool project that might provide an alternative way to help when writing code for Lambda, and that’s Lambda Live Debugger (LLD).
LLD is an open-source project that allows you to attach IDE debugging to your Lambda functions... running in AWS. It supports CDK, SLS, SAM, and Terraform/OpenTofu projects out of the box. You install the package, run the config wizard in your project, and it creates a config that you can adapt as well as the relevant debug profile in your IDE. Then it’s as simple as inserting a breakpoint in your IDE and hitting F5!
You can then invoke your function, whether that’s part of a larger orchestrated test, via the CLI, from an API Gateway call, or in the console. The debugger hooks, and in your IDE you can now inspect and step through your code as you would do locally - but it’s running in AWS.
This is a really interesting and exciting tool that I plan to play with some more and see where it most naturally fits in my development flow. I haven’t formed a point of view yet on whether it could be complementary to something like Clean Architecture, but it’s already been useful for me personally.
3. What is your favourite trick or tip when working with serverless that the readers may find interesting?
I think Developer Experience is an area that people new to serverless struggle with. Obviously you personalise this over time, but I’m a big fan of sensible default, so here would be my suggested defaults if I were starting again.
Use AWS CDK which when you’re getting started makes keeping your IaC, business logic code, and tests together in a congruous place with a single experience.
Break apart your code to make it easily testable locally (unit testing) and/or use AWS SAM to be able to test Lambda invokes locally.
Deploy using
cdk deploy --watch
into a development AWS account so that you can get fast feedback from the “real” AWS which takes things like limits and IAM into account.Use CI/CD for any higher-level environments like staging (and obviously prod!) to test and deploy builds in a consistent way.
Use generative AI code assistants to help you get unstuck. For me personally, I used to have 20+ Stackoverflow tabs open. I’d sit there trying to read between the lines of other folks facing similar problems and having to read lots of material of varying quality to get my head around a concept or implementation detail. Now I can get that same information without leaving the IDE, but have it distilled and explained to me. Better yet, when I don’t quite get something on the first pass I can have a conversational approach and ask for the solution to be explained differently. This has been a huge accelerator for me.
✅ Bonus tip: join the hashtag#believeinsls discord! There is a community there to answer any questions you may have without getting overzealous on serverless or without judgment! Check it out!
🚀 New Releases
Here are the latest releases this week in the AWS World:
⭐ The most interesting for me this week is the updates to Amazon Nova and the Converse API.
Amazon Bedrock Guardrails announces policy based enforcement for responsible AI.
Amazon DynamoDB Accelerator (DAX) SDK for Go version 2 is now available.
Amazon DynamoDB Accelerator (DAX) SDK for JavaScript version 3 is now available.
Amazon Redshift Serverless now supports Current and Trailing Tracks for release updates.
Meta’s Llama 3.2 models are now available for fine-tuning in Amazon Bedrock.
🔥 Tip: Check out https://aws-news.com/ for the very latest up-to-date serverless releases as they happen, created by the talented AWS Serverless Hero Luc van Donkersgoed.
👷🏻 Tools & Frameworks
Check out the latest open-source frameworks, news, and tool updates from the past week.
Event Catalog: Introducing EventCatalog MCP Server. EventCatalog now supports the Model Context Protocol (MCP), which can help teams save time by finding the information they need directly in their code editor or LLM. [Video].
aws-list-resources. Uses the AWS Cloud Control API to list resources that are present in a given AWS account and region(s). Discovered resources are written to a JSON result file.
✖️ Social of the Week
This week’s social is on X by Leo, which highlights some of the issues we may see happening as less technical people start to use products like Cursor (AI) to create full-blown applications.
In a subsequent tweet, he has now stated:
”i'm shutting down my app
Cursor just keeps breaking other parts of the code you guys were right, I shouldn’t have deployed unsecured code to production I'll just rebuild it with Bubble, a more user friendly and secure platform for non techies like me I appreciate everyone for the support in the past 2 days not quitting so easy”
What are your thoughts on non-technical people using generative AI in this way? Have you had positive experiences personally, or is this going to become more widespread? Feel free to leave a comment below.
🎙️ YouTube & Podcasts
Here are some of my favourite videos and podcasts this week.
⭐ My favourite video this week is by my friend Allen who covers building real-time push notifications on AWS the easy way (this video is super slick).
How to Build Real-Time Push Notifications the Easy Way with AWS with Allen Helton.
Derek Comartin covers “Why Separate Databases? Explaining Like You're Five”.
Woody Zuill covers Advanced Software Teaming [Mob Programming].
Eric Johnson covers “New private API integrations” on Serverless Office Hours.
Steve Smith discusses Platform Engineering Tools Can HURT More Than HELP.
💡 Hints & Tips
Each week, I share any quick hints or tips based on things I notice in day-to-day engineering life.
⭐ [Tip] Standard Webhooks - if you are working with webhooks day to day in your serverless solutions, there is a great package called ‘standard-webhooks’ which makes life easier when encrypting and decrypting webhooks using either HMAC-SHA256 or ed25519 encryption (here is some quick and basic example code below for Typescript, but it comes in most language variants)
The code above takes the required headers from the Amazon API gateway API, ignores the non-relevant ones, and uses the library to ensure that the signature matches based on a shared secret, the payload (body) and the required headers.
Note: I would combine this with IP Allow Listing in WAF and API Use Plans too (API Keys) at a minimum.
Weekly Case Study 🔍
This week’s case study comes from Genesys:
Genesys Cloud, built on AWS, leverages a microservices architecture with Amazon DynamoDB as its primary data layer, ensuring high availability, scalability, and operational simplicity. The platform achieves 99.999% availability across 15 primary and 5 satellite regions using DynamoDB global tables for cross-region replication and DynamoDB Streams for real-time data processing. The high-level architecture is shown below.
Go check out the article above for a deep dive into the architecture and how they approached it architecturally.
🗣️ Inspirational Quotes and Thoughts
This week’s inspirational quote comes from AWS VP / Distinguished Engineer Colm MacCárthaigh:
"Highly available systems aren’t built by avoiding failure, but by embracing it."
– Colm MacCárthaigh
This is a fantastic quote which shows the importance of building your solutions with failure in mind from the start. When designing a proposed architecture, I typically walk through it on paper, looking at every potential failure scenario that I can spot and how we would mitigate it. I also like to think about disaster recovery and processes around replaying failed events (and checking, for example, if our processes are idempotent).
How do you typically approach this at design time?
🗳️ Poll of the Week
In last week’s poll, we asked the question, “Do you think an architect as a role is required in a serverless team?“, with 75% saying yes and 25% saying, “It’s complicated”.
My own thoughts are, I agree, it’s complicated. I always feel there should be at least one senior in the team (whether they are named Principal Engineer, Architect or other) who can mentor the rest of the team, lead on the overall design, pull together the technical design documents for the team to work on collectively, navigate the AWS Well-Architected Framework review, and to support spikes and the creation of architecture decision records. Without this, you sometimes can have a “free for all” with architectural design, or the opposite, the bystander effect (where people presume others will tackle the things above and they don’t get done!).
This week, we ask the question, “How do you work with DynamoDB in Serverless solutions?“. Leave a comment below on why you chose your answer and your experience of using the tools above!
📅 Serverless Events
The following serverless events are upcoming, so mark your calendars.
🎟️ To note, CFP is currently open for the AWS North conference which I am helping organise, and we also have opportunities for lightening talks throughout the day. Go check it out!
Other fantastic events happening soon:
AWS Community Day Slovakia - 26th March 2025
AWS Community Day Italy - 2nd April 2025
AWS Community Day Romania - 10th April 2025
AWS Community Day Turkey - 19th April 2025
ACD Bengaluru - 23rd May 2025
ACD Adria - 5th Sept 2025
AWS Community Day Baltic - 10th Sept 2025
ACD DACH - 7th Oct 2025
AWS North Community Conference - 16th Oct 2025
Do you have any upcoming events that you want to highlight? Message me below!
⭐ Spotlight
This week’s spotlight falls on AWS Head of Serverless Go-To-Market Emily Shea!
Emily is a seasoned AWS leader with over eight years at Amazon, specialising in go-to-market strategies for AWS Serverless and Application Integration services. With a wealth of experience leading global teams, Emily often shares her experiences and knowledge through international speaking, local talks, video engagements, podcasts, and her blog, emshea.com. Many thanks for all you do for our fantastic global community, Emily!
Thank you for reading the latest Serverless Advocate Newsletter!
If you want to find out a little more about me, please have a look at:
https://www.serverlessadvocate.com/
See you next time,
Lee