A Java Geek weekly 87

Kotlin Coroutines and OpenTelemetry tracing

I recently compared three OpenTelemetry approaches on the JVM: Java Agent v1, v2, and Micrometer. I used Kotlin and coroutines without overthinking. I received interesting feedback on the usage of @WithSpan with coroutines. Indeed, the @WithSpan annotation works flawlessly in conjunction with coroutines for some time already. However, it made me think about the underlying workings of OpenTelemetry. Here are my findings.

Redis Returns to Open Source under AGPL License: Is It Too Late?

Another post about the Redis drama: will users come back or not now that Valkey (the fork) is available? Let’s wait a bit until we can come to a conclusion.

GitHub MCP Exploited: Accessing private repositories via MCP

MCP has huge potential to make our lives better, but as with any other new technology, we will get a load of infosec attacks. This one is particularly smart and nasty.

"Streaming vs. Batch" Is a Wrong Dichotomy, and I Think It’s Confusing

Indeed, any streaming system worth the name is indeed micro-batching.

Spring Boot 3.5 Delivers Improved Configuration, Containers, and SSL, Shortens Free Support

A whole batch of good stuff!

OWASP Kubernetes Top Ten

TIL during KCD Istanbul: the OWASP provides a Top Ten for Kubernetes as well. It’s not rocket science, but I find the material very educative, especially the "How to prevent" section.

Apache Fury

A blazing-fast cross-language serialization framework powered by just-in-time compilation and zero-copy

I Replaced Spring Boot with Quarkus — Here’s What Happened (And Why I’m Never Going Back)

TL;DR: an "engineer" decides to migrate from a Spring Boot app based on blocking code to Quarkus non-blocking code and attributes the performance win to Quarkus.

Some comments mention that the post is written by an AI or a very bad engineer. In any case, it serves as an example of not what to do. Spring Boot also offers a non-blocking paradigm and the post doesn’t mention any schedule regarding the migration.

Technical debt is a thing, but staying within the bounds of the same framework is more cost effective than migrating to another one.

Why Use Structured Errors in Rust Applications?
  • Using thiserror for libraries and anyhow for applications
  • Pattern matching isn’t the only reason to use structured errors
  • The tradeoffs
Residuality Theory: A Rebellious Take on Building Systems That Actually Survive

I never heard about this approach. I wonder who did implement it and what was their feedback.

Pyrefly vs. ty: Comparing Python’s Two New Rust-Based Type Checkers

So far, my only experience in Python was for small-sized batches. Thus, I didn’t have any performance issues; plus, I avoid implicit typing, unless it’s evident.

As a side-note, it’s very interesting that Rust is invading the Python ecosystem.

Spring Secret Starter: Managing Secrets in Your Spring Boot App

I’m not sure it’s necessary or the best approach, but it’s always a fun exercise to build a starter for Spring Boot.

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 87
Share this