#18 Managing Complexity 🧶
This week, our serverless expert is Momento CEO Khawaja Shams, our spotlight falls on AWS Serverless DA Julian Wood, we look at the latest AWS service releases, blog posts, news & more!
Welcome
In last weeks issue, our serverless expert was AWS Serverless Hero Vadym Kazulkin, and our spotlight fell on AWS Community Builder Raphael Manke!
This week, our serverless expert is Momento Co-Founder and CEO Khawaja Shams, our spotlight falls on AWS Serverless Principal Developer Advocate Julian Wood, we look at the latest AWS service releases, blog posts, hints and tips, news and more! You will see there is a focus on managing complexity in this weeks issue, and why it is so key to engineering and architecture in the cloud.
This week’s newsletter is sponsored by Leighton.
A Glimpse into My Week 📚
This week, I have mainly been on vacation with the family, and during quiet periods, working on my micro-saas products, preparing a talk I am doing soon, and reading. (more info on some of the products next week!)
The book I am reading currently is Build: An Unorthodox Guide to Making Things Worth Making - The New York Times bestseller by Tony Fadell. With the building of small products outside of my day job this has been an interesting read!
📰 Articles that caught the eye
This week here are some of the stand-out articles that I read through during the week.
⭐ The highlight for me this week was the article by Jon Goodall (below) which shouts out to the absolute geek in me - loved this read!
Gabriel Koo created an interesting article on ‘Use Amazon Bedrock Models with OpenAI SDKs with a Serverless Proxy Endpoint - Without Fixed Cost!‘.
Tycko Franklin covers ‘A Novel Pattern for Documenting DynamoDB Access Patterns’.
Kevin Kiruri discusses ‘Amazon Aurora DSQL: The New Era of Distributed SQL’.
Vadym Kazulkin covers ‘Data API for Amazon Aurora Serverless v2 with AWS SDK for Java - Part 11 Logging and monitoring‘.
Jon Goodall wrote a great article on ‘Building a Serverless Podcast Workflow: Adventures with AI‘.
Rob Bulmer discusses ‘Onboarding Customers via Multi-Step Workflows in the AWS CDK’.
🎓 Ask the Expert
Each week, I ask a different serverless expert the same three questions to get their personal insights - this week, we have Momento Co-Founder and CEO Khawaja Shams.
1. What is one common mistake you see teams making when implementing serverless solutions, and how can they avoid it?
Serverless is not always the answer! Many teams start with the assumption that serverless is the right or wrong solution before they clinically define the problem. This approach prioritizes ideology over engineering.
Einstein allegedly said that if he had to solve one problem to save the world in 60 minutes, he would spend the first 59 minutes clinically defining the problem and only one minute solving it.
My advice is to spend time defining the goals, explicitly outline the non-goals (things that are not important to address), and then work on exploring the solution space. Whether Lambda has cold starts or not is irrelevant unless you have specific latency objectives for your application and some benchmarks that help you compare Lambda against those. Maybe it is 10x more expensive, but does it matter if your total cost is low or the product you are working on is so profitable that you need to compete on feature velocity instead?2. Which serverless tool or service are you most excited about right now, and why?
The original serverless service in GA was S3! It was not called serverless - but it met all my criteria for what it takes to be a serverless service 8 years before the word was coined. It shows you how powerful simple primitives can be in building the foundation of complex services that came later.
18 years after its launch, S3 continues to astound me with its durability, availability, and feature velocity. More recently, I find that it is trending towards becoming a database!3. What is your favourite trick or tip when working with serverless that the readers may find interesting?
Rust + Lambda is an explosive combination! Ben Pyle has been doing some incredible work on benchmarking Lambdas written entirely in Rust. He shows how easy it is to get started, with code samples, and also benchmarks.
But - suppose you want to dabble into Rust without rewriting your whole business logic? The engineers at Momento are seeing 10x performance gains in their Node.JS benchmarks if they just delegate the networking stack (that makes Momento calls) over to Rust. This is via Rust Interop - and it works wonders!
✅ A 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.
🚀 New Releases
Here are the latest releases this week in the AWS World, which as you would have guessed, was very quiet over New year:
Amazon Location Service is now available in AWS Asia Pacific (Malaysia) Region.
Amazon Aurora now supports PostgreSQL 16.6, 15.10, 14.15, 13.18, and 12.22.
Amazon EKS introduces programmatic access to Kubernetes version availability.
🔥 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
Checkout the latest open-source frameworks and tool updates from the past week.
⭐ The highlights for me this week are the release of Ghostty and the AWS CDK contributor council being announced!
Node.js Now Supports TypeScript By Default. (kind of..)
Convert Figma designs into production-ready shadcn/ui code using the AI plugin.
💡 Hints & Tips
Each week I share quick hints or tips based on things I notice in day-to-day engineering life.
⭐ [Tip 1] - Bedrock Token Use. If you are using Amazon Bedrock with the Converse API, it can be useful to see the amount of input and output tokens you have used per request; especially when looking at cost estimations for a product:
The code above shows how you can easily get the metrics based on realistic data (input tokens) prompts with the AWS SDK v3.
⭐ [Tip 2] - How big is a Microservice in Serverless? Over the years I have been asked this question by many teams across many organisations - but can we try and define what it may look like in serverless? Is the answer “it depends“? Have a read and let me know your thoughts.
In the article above I looked at the key indicators of size, and how this may help you in defining your own microservice size in serverless.
What tips would you suggest for the readers?
✖️ Social of the Week
This week’s social is on X/Twitter and comes from Santiago:
The full tweet reads:
”… I don't think AI will replace everyone just yet, but it will certainly increase the bar to becoming a paid professional in the field. This is already happening, albeit slowly.It will definitely accelerate during the next 5 years. Every developer is upskilling right now or facing elimination. AI can now do much of the low-skilled work we used to do.
The faster we can complete our jobs today, the less help we need. As models get better, entry-level skills will be harder to get. I remember when "having a computer" was all you needed to cash a check. It will take many years of study to join the same club in a few years. It'll be a bit like becoming a doctor. You need many years of school plus a ton of effort plus eating crap for years before seeing those sweet, sweet dollars.
It's very hard, and I think that's where software development is going. AI is coming first for the low-hanging fruit. It will render "general-available" knowledge useless, forcing people to specialize to increase their value and compete. I think education is now more important than ever. I don't know what to do, but I certainly think that knowledge is our most important defense going forward.”
The reason I find this tweet so interesting is I actually believe Santiago is sadly correct, and I have had similar discussions with peers recently from things I am already noticing.
Many junior to mid developers can be negated now by one very good senior engineer knowing what to ask for using generative AI. That is the key; a great senior engineer has a depth and breath of knowledge across many different areas; whether that be AI, architecture, system design, security, authZ and authN, databases etc; and can hone those prompts to get exactly what they require very quickly (i.e. they know what they want already and what good looks like). They know when generated code is wrong or needs amended through multiple prompt cycles. The concern then is how we develop people into great engineers from the ground up?
What are your thoughts on this?
🎙️ YouTube & Podcasts
Here are some of my favourite videos and podcasts this week, my fave being the discussion by Theo Browne comparing serverless to self-hosted servers, and what it means for development environments and more..
What We Learned From Our Favourite Moments Of 2024 On Continuous Delivery.
James Eastham covers “Should You Build A Monolith Or Microservices?”.
Weekly Case Study 🔍
This weeks case study comes from DoorDash and their 2023 microsite and advert:
In 2023, DoorDash created a 30-second interactive ad during the American football championship, inviting viewers to enter a promotional code for a chance to win prizes tied to national commercials. Whats great to see about this event-driven architecture was the scaling numbers which serverless did at ease: Over 10 million entries, 725,000 requests to Amazon API Gateway per minute, and 8 million requests to Amazon CloudFront per minute. During the ad there were 100 million viewers of the microsite.
One of the quotes from the study was “We had no issues with handling the traffic during the event,” says Alexander, Technical Program Manager at DoorDash. “Everything stayed up on AWS, and it was about as smooth as you could expect.”
Go check it out!
🗣️ Inspirational Quotes and Thoughts
This week’s quote comes from author and international speaker, Gregor Hohpe:
“Evolving a widely reused resource also requires coordination because changes must be compatible with all existing systems or users. Such coordination can slow down innovation... Some digital companies have even begun to explicitly favor duplication because their business environment rewards economies of speed.”
― Gregor Hohpe, The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise
Whilst at a previous global company I saw this tradeoff first hand on a large scale across our architecture and engineering departments, where we built reusable platforms, frameworks and components through platform teams. In my opinion, for this to work effectively across many teams there needs to be first and foremost the organisational structure and leadership in place to support it, and a level of maturity and skill in the teams. If none of that is in place I would personally prefer duplication every day of the week before even contemplating looking at reuse.
🗳️ Poll of the Week
In last week’s poll, we asked the question, “Which observability provider do you use?“, with 14% saying Datadog, and the remaining 86% saying they use the native AWS services (CloudWatch, X-Ray etc).
This week, we ask the question, “What is the hardest part of building with serverless?“
Please feel free to add comments below as to why you chose that option.
⭐ Spotlight
This week’s spotlight falls on AWS Serverless Principal Developer Advocate Julian Wood!
Julian is one of the most (if not the) most prolific speakers, bloggers, and video content producers that I am aware of in the world of AWS! He is a fantastic international speaker, able to condense difficult topics into easily understandable sessions, regularly talking at events like AWS re:Invent; and running amazing live sessions on YouTube channels such as ServerlessLand and Goto Conferences. To top it off, he is just one of the nicest people in our community, always stopping to say Hi and always there to support others! Thank you for everything you do in our wonderful community!
👋🏼 Wrapping Up
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