A Java Geek weekly 71

Introduction to the Tower library

One of the components of my OpenTelemetry demo is a Rust application built with the Axum web framework. In its description, axum mentions:

axum doesn’t have its own middleware system but instead uses tower::Service. This means axum gets timeouts, tracing, compression, authorization, and more, for free. It also enables you to share middleware with applications written using hyper or tonic.

Oracle justified its JavaScript trademark with Node.js—now it wants that ignored

Indeed, Oracle has more lawyers than engineers.

How could I have missed it???
From Table Layouts to Tailwind: The Evolution of Front-End Styling (1995–2025)

A long history of CSS, Sass, Tailwind, and more

Warning: it’s an exhaustive but long read.

Emerging Patterns in Building GenAI Products

As we move software products using generative AI technology from proof-of-concepts into production systems, we are uncovering a range of common patterns. Evals play a central role in ensuring that these non-deterministic systems are operating within sensible boundaries. Large Language Models need enhancement to provide information beyond a generic and static training set. Most of the time we can do this with Retrieval Augmented Generation (RAG), although the basic RAG approach requires several patterns to overcome its limitations. When RAG isn’t enough, Fine Tuning becomes worthwhile.

Why I Changed My Mind About Backstage? A Brutally Honest Opinion
Docker Bake is Now Generally Available in Docker Desktop 4.38!

TIL. I probably won’t use it ever, because I’m used to Dockerfile that I can use across all tools, e.g., OrbStack.

Implementing Container Runtime Shim: runc

After having explored how to run WebAssembly on Kubernetes, I had the idea one could do the same with JVM bytecode. It requires writing a shim, code that would run between the containerd and java processes. I tried, but it requires a lot of system programming skills, which I lack at the moment. The post is a good foundation to understand what you need to do; the next post in the series implements it in Rust. It’s not trivial either. I’ve stopped my thought experiment for the moment.

How to Build a Multi-Tenancy Internal Developer Platform with GitOps and vCluster

In this blog, we’ll explore how to build a multi-tenancy platform using a self-service approach. The goal is to establish the logic behind a self-service approach while highlighting that an Internal Developer Platform (IDP) is more than just a UI and APIs — it’s about building the core functionality that powers them.

I think that’s the first time that I see a not vague definition of an IDP.

Observing Lambdas using the OpenTelemetry Collector Extension Layer

Lambda extension layers allow you to run any process alongside your code, sharing the execution runtime and providing additional services

The Ultimate Guide to Kubernetes Init Containers

I think init containers are massively under-utilised.

From Zero to Fully Operational Developer Platform in 5 Steps!
Nicolas Fränkel

Nicolas Fränkel

Nicolas Fränkel is a technologist focusing on cloud-native technologies, DevOps, CI/CD pipelines, and system observability. His focus revolves around creating technical content, delivering talks, and engaging with developer communities to promote the adoption of modern software practices. With a strong background in software, he has worked extensively with the JVM, applying his expertise across various industries. In addition to his technical work, he is the author of several books and regularly shares insights through his blog and open-source contributions.

Read More
A Java Geek weekly 71
Share this