#07 Waiting for Pre:Invent!
In this week’s issue, we have more great insights from our serverless expert of the week James Eastham, the spotlight falls on Jeremy Daly, more hints and tips, our weekly poll results, and even more!
Welcome
In last week’s article, our Serverless expert of the week was Steve Morland, CTO at Leighton; we saw AWS creating a ClickOps to IaC service using Amazon Q, had more hints and tips, the weekly poll results, and more!
This week, our Serverless expert of the week is Datadog Developer Advocate James Eastham, the spotlight falls on Jeremy Daly, more hints and tips, our weekly poll focuses on AWS certifications, and much more!
This week’s newsletter is sponsored by Leighton.
A Glimpse into My Week 🎤
This week has been fun-filled and busy, to say the least, with an offsite with the other community leads, a company day where I presented our AI personalisation work on Voyager, and I have been working with our software engineering teams in building out more very cool products! I also got my hands on my latest article for Northern Insight magazine which was epic to browse with a coffee! I’m also busy writing an article on deploying AWS CDK apps to multiple environments (me writing an article? Never…😉)
📰 Articles that caught the eye
This week, I wrote a quick article on “Scheduling emails through Amazon EventBridge Scheduler & Amazon SES“.
Other articles from the community:
Marcin Sodkiewicz discusses Elasticache Serverless — ValKey review.
Jones Zachariah Noel N covers choosing the right serverless API.
Uriel Bitton covers how Dropbox Saves Millions By Using Amazon DynamoDB & S3.
Allen Helton discusses ‘Okay, Gitpod Flex is actually pretty cool’.
Yan Cui looks at Step Functions: combine Standard and Express workflows for fun & profit.
🚀 New Releases
Not many new serverless service releases this week, unfortunately, but don’t worry, pre:invent won’t be long!
Bring your conversations to WhatsApp with AWS End User Messaging Social.
Announcing AWS DMS Serverless support for MongoDB and DocDB as a source.
Amazon S3 adds new Region and bucket name filtering for the ListBuckets API.
Serverless Framework V.4 is now available on AWS Marketplace.
EventCatalog now has an integration with Amazon EventBridge.
Amazon DynamoDB announces user experience enhancements to organize your tables.
Simplifying Lambda function development using CloudWatch Logs Live Tail and Metrics Insights.
🎓 Ask the Expert
Each week I ask a different Serverless expert the same three questions to get their personal insights - this week we have Datadog Developer Advocate James Eastham.
1. What is one common mistake you see teams making when implementing serverless solutions, and how can they avoid it?
I have two, so this is a great question. I'll save one of them for the last question. From what I've seen I think it's people thinking that everything needs to be serverless, and that serverless == FaaS. Even small-medium sized enterprises will have certain use cases fit better outside of FaaS and may fit for containers. Or even dare I say it, Kubernetes.
Getting caught up in serverless or not serverless, instead of thinking 'serverless first' but being willing to step out where possible. Think of serverless like a spectrum, with FaaS on the far right and VM's on the far left. Stay as far right as possible, but don't be afraid to step out. Running a container on ECS Fargate still gives you very little operational overhead, and solves a bunch of challenges with using Lambda for more latency sensitive workloads. The same goes for databases (everything doesn't need to be Dynamo when you have services like Neon) and integration services (see 3rd question 😉 ).2. Which serverless tool or service are you most excited about right now, and why?
The entire Cloudflare platform has got me super excited at the moment, if you hadn't guessed from my recent YouTube videos. They have a fantastic platform, with a developer experience that is honestly better than anything I've seen from any other vendor. It's like they've taken all the lessons AWS and others have learned with serverless, and tried to tackle them. Everything runs locally, switching between local and remote dev is simple, and they are adding more services all the time.
It's not perfect, region specific use cases and general scalability haven't quite been proven out yet. But it's a brilliant platform that is well worth checking out. If you are interested, Ashley Peacock has a great book called Building Serverless Applications with Cloudflare that I'd highly recommend checking out.3. What is your favourite trick or tip when working with serverless that the readers may find interesting?
Only one tip, c’mon Lee how do I think of just 1 😉.
Don't lean too heavily on managed services and tying up your core business logic inside proprietary services. Which might seem like a strange thing to suggest for a serverless newsletter. Let me explain.
Take Step Functions, a fantastic service that simplifies a whole bunch of distributed systems problems. But it's an orchestrator, not a way of building core parts of your application. Of the many app migrations/modernisations I've worked on, it's almost never the compute that's the hard part (providing it's stateless), it’s the 'other stuff'.
If you're familiar with Domain Driven Design, then keep your core domain out of proprietary services. For supporting or generic subdomains, go wild. Reading from a queue and sending an email? Go wild with SQS + SFN + Pipes. A core piece of your business logic that differentiates you from your competitors, keep that in application code.
The tip boils down to every time you use something like Step Functions (or Pipes) ask yourself the question or you using it to orchestrate (or transport) or are you using it to perform some core piece of your business logic. If it's the latter, then consider something else.
If I can sneak one more in at the end, it's if you're building an event-driven system (which typically goes hand in hand with a serverless one) THINK ABOUT YOUR SCHEMAS people. EDA's aren't decoupled; they are loosely coupled, and the schema of your events is the biggest point of coupling. Think of event schemas as you would API contracts, treat them with the same love and attention. And you'll be fine 😊
💡 Quick Hints & Tips
Each week I share quick hints or tips based on things I notice in day-to-day engineering life:
⭐ [Tip 1] Do you constantly have to think about excluding files like ‘.DS_Store’, ‘npm-debug.log’ etc across multiple Git repos each time, but wish you didn’t need to? Aren’t they super annoying?
Well, you can create one global .gitignore file using the following steps easy enough for those really annoying files that you never want to commit:
touch ~/.gitignore && git config --global core.excludesFile ~/.gitignore
You can now add those files to the global .gitignore file so you never check them in by mistake again.
⭐ [Tip 2] When working with ephemeral environments and DynamoDB, have you ever needed to insert mock data into a new environment to make getting up and running quicker for engineers? But, only doing this in non-production.
If so, this can be done using a combination of the s3Deploy package in the CDK and a feature of DynamoDB called S3 imports, where essentially you automatically push local JSON files of data to S3, and DynamoDB pulls that data into its table!
For a full article and example code in Typescript and the AWS CDK, check this out.
🎙️ YouTube & Podcasts
James Eastham looks at High Performance Postgres with Rust, Cloudflare & Hyperdrive.
Software Architecture for Tomorrow: Expert Talk • Sam Newman & Julian Wood.
✖️ Tweet of the Week
This week’s tweet of the week is by the fantastic Momento, and their waiting list for the Believe In Serverless party at AWS Re:Invent!
This was one of the biggest highlights of last year for me personally, and I got to meet so many of my international friends for long chats and drinks! Loved it! 100% check this out if you are in Vegas this year!
🗳️ Poll of the Week
Firstly, in last week’s poll, we asked the question “Should Technical/Solutions Architects be hands-on?“, with 80% of respondents saying yes, 0% saying no, and 20% saying “Somewhat - it’s complicated”.
I totally agree with the 80% personally, as I firmly believe you need to have hit the hard edges of services before you can support a team's direction in using them. Otherwise, it's a theoretical paper-based exercise only.
In this week’s poll, we ask the question, “Are AWS certifications worth it?“. I would love to hear your thoughts using the comments button below!
🗣️ Inspirational Quotes and Thoughts
This week’s inspirational quote comes from Kent Beck:
"Make it work, make it right, make it fast."
– Kent Beck, creator of Extreme Programming
I love this quote, as it shows my own mental model when building software.
I tend not to prematurely optimise or overcomplicate the code with loads of abstractions etc. I typically start with some working code that meets the feature or brief, then refactor it to make it more modular and readable with tests, etc, and finally, I optimise it only if it needs it.
The only caveat to this is the work I do around lightweight, clean code, again as a mental model. I will always, at the minimum, split my code into primary adapters, use cases and secondary adapters. In doing this, I move super quickly, and this is my baseline before making it any more modular!
How do you approach your new features?
⭐ Spotlight
This week’s spotlight falls on Jeremy Daly, CEO and co-founder of Ampt and one of the original Serverless Heroes who got me into serverless alongside Yan Cui many years ago! Jeremy is also the host of Serverless Chats and the owner of the fantastic newsletter OffByNone.io, as well as being instrumental in the Serverless Framework.
Jeremy has done a huge amount for this community over a large number of years and has supported and inspired many, many people (myself included). Thank you for all you do in our community!
👋🏼 Wrapping Up
Thank you for reading the latest Serverless Advocate Newsletter!
For anybody attending Re: Invent this year who wants to meet and talk about all things Serverless, AI, DDD, EDA, and Team Topologies, drop me a line on social media - I want to meet as many people this year as possible!
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