holy-lambda 2023-10-19

We're looking at using holy-lambda for writing AWS lambdas in Clojure, but we already have massive infrastructure for creating and deploying cloudformation stacks. AWS SAM is a total non-starter for us. Our inhouse lambda bundler deploys jars and generic zip files to lambda already. Is there a simple way just to create a jar file for the clojure/java build and a zip file containing everything we need for babashka?

👀 1

Is your lambda running with JVM Clojure or with bb?

Right now just JVM Clojure, but we're entertaining bb

right, I was confused by "java build" + bb

I’ve dropped support for Java based lambdas some time ago. HL needs a rework, but nowadays it’s hard for me to find free time for OpenSource work. TL:DR I don’t recommend HL for now.

👍 1

Gotcha. @trhawes, there's also #blambda, perhaps worth a shot

👍 1

I think the OP means the JVM lambda meaning no custom runtime.

It's fairly easy to create lambdas with #nbb + Node.js too btw, if the custom runtime is a problem: https://github.com/babashka/nbb/blob/main/doc/aws_lambda.md But can't say if this is a too big of a change, just giving more options

We've been using lambada for the JVM stuff. But now looking at the actual code, we might either fork it to update its single dependency or just copy the macro for our packages. We're looking to use bb as an alternative. Honestly, we have not (yet) been all that unhappy with the startup speed with Clojure and the JVM. Most of our implementations are jobs that get kicked off with cloudwatch.

Have you been using the snapshot stuff that Aws now supports for JVM software?

Erm.... nope. Guess I slept through that announcement. From last December too. We'll definitely give that one a shot!

👍 1

Snapstart has worked kind of nice, but in our case, the uaage of the lambda is so infrequent, that I've seen cold start restore durations around 30 seconds at times. This does not happen that often though and usually checkpoint restore duration for our naive ring api handler is within 500ms-1s range, but AWS Itself in the docs say, that Snapstart works best for frequently uses Lambdas, so might be that for infrequently invoked lambdas, you sometimes end up on some really cold snapstart cache. The long term optimist in me is thinking that this will eventually get solved