Update on the Golang rewrite
I’ve been stealing small chunks of time in the evening here and there and finally have a functioning Go rewrite of cmdchallenge which will replace all of the Python code that is running in AWS Lambda.
The first diff for this is massive, I am really looking forward to removing all of this vendored Python!
And we will say goodbye to some AWS services:
DynamoDBReplaced with an sqlite DB LambdaNow written as a Go service running on a VM CloudWatchNot needed API GatewayNot needed
What I didn’t expect during this rewrite was the joy of having everything running locally, including end-to-end tests in Go. It’s quite nice to be able to validate requests and being able to test using a browser locally without having to go through Lambda in the cloud.
Since a VM for the runner was already a requirement, I will likely stick the new web service on the same VM and keep a local SQLite DB. What I haven’t figured out yet, is how to manage persistence so that I can rebuild the single VM without losing any (or too much) data. Right now, I’m thinking something as simple as a shutdown script that syncs to object storage, and reads on provision.