Our serverless superhero this week is Mario Bittencourt, Principal Software Architect at SSENSE. Mario is a fantastic writer - regularly posting easy to follow explanations of complex programming concepts on his blog. He’s regularly featured in this newsletter for his high-quality posts and is a trusted resource when it comes to advanced serverless architecture. Thank you Mario for making the tough parts of serverless so approachable!
I’m all about repeatable serverless patterns. The more we normalize, the easier it will be to have an agreed-upon set of best practices. Jimmy Dahlqvist wrote about several serverless patterns last week including the storage-first pattern, circuit breaker pattern, and Step Functions CRUD pattern. There are some interesting ones in here that make a lot of sense when considering long-term maintainability of a serverless app. Great work, Jimmy!
Keeping the serverless pattern train rolling, Lakindu Hewawasam was on vBrownBag last week and talked us through several patterns in his talk “building loosely coupled and scalable backends using AWS serverless”. Lakindu talks about 3 asynchronous serverless patterns and gives us an easy to follow architecture diagram for each one.
Lee Gilmore is back and this time educating us on CDK pipeline best practices. This is the first post in a new series from Lee talking about how to build enterprise-grade deployment pipelines using the CDK. This is an opinionated post, but he backs his opinions with published AWS documentation to justify his stances. As usual, this is super thorough and he walks us through with code samples on building a robust pipeline and structuring your projects in a way that is easily maintained.
I hope you all find this newsletter inspiring. I know I do. Reading about all the cool things developers are doing in the serverless space always makes me want to build a SaaS product. The Serverless Edge gave us a checklist to run through when considering building a serverless SaaS offering. It’s a great reality check before actually pulling the trigger and beginning your journey. They remind us to consider app management, data security, multi-tenancy, and more.
In part 4 of his series on multithreading in Lambda functions, JV Roig goes into incredible detail on the differences in processing heavy CPU loads with various amounts of threads. He shows the difference between using arm64 and x86 architectures and even details out performance at almost every memory configuration possible. Increasing function memory above a certain threshold will “unlock” additional cores for processing. This is exactly what JV is exploring with his test on cost efficiency for multithreaded functions.
I decided to hop on the ChatGPT bandwagon last week. I am always looking for ways to automate things in my life and ChatGPT has become a wonderful enabler for me. So I (Allen Helton) wrote an article on how I built a serverless app to make ChatGPT my personal trainer. Without too many spoilers, I use the OpenAI API to generate workouts for me every day and send them to me in an email. Shockingly, the workouts are very good and have made my day-to-day life a little easier!
Episode 3 of the Ready, Set, Cloud podcast released on Friday! In this episode, I talk with Lars Jacobsson about developer experience. We deep dive into his amazing tool, the Step Functions Workflow Studio sync, and discuss our thoughts on what makes for a good or bad developer experience.
Amazon SNS now supports AWS X-RAY active tracing! This helps with our end-to-end tracing of business processes in large distributed systems. It’s a great piece to the observability puzzle we’ve been missing for quite some time!
AWS Lambda has new CloudWatch metrics for AsyncEventsReceived, AsyncEventAge, and AsyncEventsDropped. These new metrics offer some insightful visibility into async processing. Hopefully these stats will help us build better alarms to respond when our choreographed workflows start failing.
Momento released support for three new cacheable data types: dictionaries, lists, and sets. This release marks a huge increase in addressable use cases ranging from chatrooms to de-duplication!
We talk about cold starts fairly regularly (even though I think it’s time we stop). People tend to latch onto the idea that “cold starts are a nonstarter for serverless” and become dismissive of the tech as a whole. Maxime David aims to help demystify the elusive “cold starts are slow” debate with a new website: lambda-perf. Every day, he runs a series of Lambda functions built in 10 different runtimes and updates lambda-perf with the results. It gives a definitive answer to “this runtime is better than that runtime” day over day. It’s a great idea to spotlight the impact of cold starts on your Lambda functions.
David Boyne continues to create EDA gold at breakneck speed. Of the many things he released last week, this one about bounded contexts with event architectures is probably my favorite.
Domain-driven design and event-driven architectures go well together.— David Boyne 🚀 (@boyney123) February 10, 2023
Defining clear boundaries/language in your system (bounded context) and use events to communicate can help scale, remain decoupled, and define models.
Bite sized notes to learn more 👇https://t.co/5MfvpElegj pic.twitter.com/l9hrvvXthW
Did you build something cool you want to share? Let me know! I am always happy to highlight the hard work of another builder.