I’m really loving Golang these days. The language has so many built-ins that make building Apis easy. It’s highly performant. And more importantly, it’s readily available on AWS Lambda.
I’ve been writing a ton of serverless code lately. And Golang is pretty perfect for it.
I expect Golang (and some NodeJs) to be my primary serverside languages over the next few months. It’s pretty remarkable how much business logic you can produce in a short period of time when you decouple your functions from a large monolith framework.
You can really easily break your business logic into small related chunks. And then setup 2-3 coupled functions that perform these tasks either after recieving an HTTP Request, at a certain time of day, when something is updated/created/deleted in DynamoDB/S3, or when a message is added to an SQS queue in AWS.
The amount of effort being saved from having to setup a queue and then offload task to the queue is dramatic. You can more easily match the requirements of a real world app — well keeping things fast.
So, I’m using this as my public list of articles that solve problems in Golang.
This app is another great way to grasp the fundamentals.
There are still some issues when it comes to serverless and Golang. For example, there is no way to run lambda’s offline on your local while writing Go.
There is with Nodejs. But, it doesn’t work yet for go. Additionally, I use SQS events for some scripts. These are hard to test due to the parameters coming from SQS aren’t readily producable on your local.
You can use the AWS SAM package to run Go locally. But, this introduced another vendor dependency that we can kind of ignore if you write go on the serverless framework.