Hi HN!<p>During the last few years, I worked on a few applications built with Go, running on AWS Lambda.<p>As I got to know the platform better, I started to find Go & Lambda to be a really productive combination. The applications were fast, and they ended up being much cheaper to run than what my team & I had built before. It’s probably not the best platform for _every_ application, but I was surprised at how much of our workload worked well on it.<p>As we brought new engineers on to our team and helped them get up to speed with the stack, I found that we were covering a lot of the same topics over and over — especially things like performance, testing and monitoring. Since this knowledge turned out to be very useful for our team, I decided to gather it into a book that will hopefully also be useful to others.<p>This is my first time putting something like this together, so I'm grateful for any feedback!<p>The book is at: https://kevinmcconnell.gumroad.com/l/lambda-go-book/hn (with HN discount ;))<p>There's also a link on that page to a free sample that you can download without registering.<p>Thanks!<p>Cheers,
Kevin
Golang is great for lambda - you compile in the entire lambda runtime and end up with a single 20MB executable that does everything needed. Other runtimes have a couple hundred megabytes of overhead for the lambda runtime and AWS SDK (though you don’t see the overhead unless your doing the ECR based lambdas). The part I’ve always struggled with is cloudformation only lets you inline 4K of code. The underlying api allows for payloads of up to 50mb before you have to pull from S3 or ECR, would love to see a little more flexibility - otherwise you have a lot of overhead to setup ci/cd pipelines and signal lambda to update from another source.
I forgot URLs don't become links in the submission text, so here's a clickable one :)<p><a href="https://kevinmcconnell.gumroad.com/l/lambda-go-book/hn" rel="nofollow">https://kevinmcconnell.gumroad.com/l/lambda-go-book/hn</a>
Any experience with cold start times? I wrote a relatively simple lambda handler in Go, expecting it to be fast, but node seems to beat it. The Go version's memory usage is better, though.
I have used Lambda extensively over the past three months in Python, Ruby and Node. The largest game changer for me was discovering Lambda Layers and realizing how I could avoid compiling zip folders to deploy. I’ve loved the iteration speed and performance, and recently have depended heavily on the Lambda + EFS combo.<p>I purchased the book and was surprised there wasn’t more on the EFS usage, but otherwise the book looks wonderful.