Not much progress recently. My game, The Alchemist, has stalled as I try to keep up with all the changes in the underlying KorGE game engine. Equally, I haven't really worked out how (and if) I really want to invest the time and effort into building Bascule Online. I might just be making excuses, but I can't find a development framework I'd like to use for it.

As always, I want to write in Kotlin - it's been my language of choice for several years now. But I'm increasingly convinced that serverless functions - e.g. AWS Lambda, GCP Functions, Azure Functions makes the most sense for me. Any web app that I build will be used infrequently, so a traditional hosting solution (e.g. through a servlet container like Tomcat) would be pointlessly expensive. I could put a server in a container, and run it via a cloud Kubernetes solution (AWS EKS, Azure AKS), but again, the costs are needlessly high.

So serverless functions make the most sense. Setting them up is quite a lot of work, and if writing in Kotlin, serverless functions are slow to execute. Or more accurately, slow-to-initialize due to the startup time of the Java/Kotlin JVM. There are tools to help you set up the cloud infrastructure required for such a project, such as Terraform and Pulumi - but that's another thing to learn before I can really make any progress, and both have costs of their own.

There are two Kotlin-centric tools which I have evaluated and used before: Osiris and Kotless. Both allow you to just write code while they build and deploy the cloud infrastructure for you (via Terraform scripts). They are effective - but both projects are moribund or perhaps even dead. Neither has been updated at all recently, neither have active communities of users. Kotless doesn't even compile with recent versions of Kotlin, and contains bugs like this route deletion bug I raised. Kotless would be ideal for me - it can make use of the underlying Ktor project, which is very actively being developed by Jetbrains. It's a pity Jetbrains are less interested in their Kotless project. I've looked, in vain for alternative projects on GitHub.

So... indecision. If Kotless could work with modern versions of Kotlin and Ktor, I'd stick with it, even with its apparently abandoned state. But it doesn't work.

Could I roll my own? Could I write a Kotlin/Terraform/AWS Lambda wrapper? Probably not!