Update on the small AWS Lambda experiment from last time: it's a five-way comparison now.
Same demo handler (greet + echo the event + count warm invocations), same benchmark methodology, five different ways to run it on Lambda, all open source:
lambda-mvp-jlt - a custom runtime in Jolt, native Clojure on Chez Scheme. Speaks the Lambda Runtime API directly, ships as a plain provided.al2023 zip.
https://github.com/b12n-oss/lambda-mvp-jlt
lambda-mvp-jnk - the same demo in jank, native Clojure compiled through C++/Clang/LLVM. Deploys as a container image, hand-rolled HTTP client and all, since jank's ecosystem doesn't have one yet.
https://github.com/b12n-oss/lambda-mvp-jnk
lambda-mvp-cljs - the reference point. ClojureScript on AWS's managed nodejs24.x runtime, officially supported, no custom runtime code at all.
https://github.com/b12n-oss/lambda-mvp-cljs
lambda-mvp-rst - the same Jolt runtime, but the handler builds its JSON response with real Rust (`serde_json`) via jolt-diplomat, a Diplomat-based FFI bridge, instead of hand-assembling a string. (Depends on a jolt-diplomat PR not yet merged upstream - the capability is real and deployed, the dependency is vendored in for now.)
https://github.com/b12n-oss/lambda-mvp-rst
lambda-mvp-bb - the new one. Babashka via blambda, and the odd one out in two ways: it's the only sibling shipped as a Lambda Layer rather than a self-contained zip (blambda's bootstrap script hardcodes LAYERS_DIR=/opt), and it's the only interpreted one - no AOT compile step, the handler is required and run through Babashka's SCI interpreter at cold start.
https://github.com/b12n-oss/lambda-mvp-bb
All five numbers, compared honestly in one place, with the caveats that come from comparing genuinely different deployment models (container image vs. zip vs. layer, compiled vs. interpreted) rather than a clean single-variable test:
https://b12n-oss.github.io/lambda-mvp-bb/guide/five-way-comparison.html
One number worth calling out up front: bb's Cold Duration (the handler's own execution time, separate from cold-start init) is the highest of the five at both memory tiers - 7.0-7.7 ms versus 1.5-4.4 ms everywhere else. Plausible read: it's the only interpreted runtime in the group. Honest hedge: one run per project can't fully separate that from measurement noise or the layer-mount overhead bleeding into the handler's own timing.
Five early releases now. Feedback, especially from anyone who's run Babashka on Lambda before, welcome.
@gentkr it is here now Babashka you are asking for ☝️
Exciting! Just when I was thinking about abandoning serverless for personal projects:sweat_smile:
Thanks, I find this informative in terms of comparing clojure dialects and their cold vs warm start and memory usage, the kind of metrics that matter in serverless pricing. Though I doubt I would use serverless unless tactically and not caring about vendor lock-in.
Would you consider adding JVM clojure using snap start? I’d be very interested in the comparison.
Please post updates in #C015AL9QYH1 -- #C06MAR553 is intended for once-a-month project announcements at most.
Especially with walls of text like this (which seem AI-generated), it would be better to write a very brief announcement of the #C015AL9QYH1 and then provide more detail in a 🧵 to be more friendly to people reading these channels on smaller devices.
@agilecreativity point_up::skin-tone-2
https://github.com/polyfy/polylith/releases/tag/v0.3.33 - Build #C013B7MQHJQ architectures in Clojure and ClojureScript
• Add poly libs :transitiveto show indirect (transitively resolved) library dependencies per project, issue https://github.com/polyfy/polylith/issues/613, documented https://cljdoc.org/d/polylith/clj-poly/0.3.33/doc/libraries#transitive
• Support suppressing warnings, issue https://github.com/polyfy/polylith/issues/614, documented https://cljdoc.org/d/polylith/clj-poly/0.3.33/doc/validations#suppress
Hi all. Clojurists Together just posted the Jul/Aug. Project updates from our annually-funded developers. Here is just a sampling of projects included: https://www.clojuriststogether.org/news/annually-funded-developers-update-july-august-2026/#bozhidar-batsov CIDER 2.0, cider-nREPL, Sayid, Orchard, Drawbridge… https://www.clojuriststogether.org/news/annually-funded-developers-update-july-august-2026/#clojure-camp Supporting and engaging new Clojurians https://www.clojuriststogether.org/news/annually-funded-developers-update-july-august-2026/#eric-dallo ECA, clojure-lsp https://www.clojuriststogether.org/news/annually-funded-developers-update-july-august-2026/#jeaye-wilkerson Jank optimization, runtime exceptions., Error pages, C++, Jank Commons https://www.clojuriststogether.org/news/annually-funded-developers-update-july-august-2026/#michiel-borkent SCI, clj-kondo, Babashka, squint, Buzz, Choq:Cherry, Cljbang.el, and more
https://github.com/RokLenarcic/memento (caching library) released This is a major new version that contains breaking changes. • new engine for secondary id invalidations • new invalidation lockout mechanism that keeps cache loads out of sensitive code areas • bug fixes and improvements • improved versioning of entries and prevention of returning entries that have been invalidated during load https://github.com/RokLenarcic/memento-redis (Redis implementation of caching) released This is a major new version that contains breaking changes. • secondary indexes are now much better, and more performant • no longer uses Redis pub/sub for secondary index invalidations (was a bit fragile) • secondary indexes lockouts now span multiple caches • better polling and waiting on loads and invalidations to complete