A Java Geek weekly 97

A tentative comparison of fault tolerance libraries on the JVM

If you’re implementing microservices or not, the chances are that you’re calling HTTP endpoints. With HTTP calls, a lot of things can go wrong. Experienced developers plan for this and design beyond just the happy path. In general, fault tolerance encompasses the following features:

  • Retry
  • Timeout
  • Circuit Breaker
  • Fallback
  • Rate Limiter to avoid server-side 429 responses
  • Bulkhead: Rate Limiter limits the number of calls in a determined timeframe, while Bulkhead limits the number of concurrent calls

A couple of libraries implement these features on the JVM. In this post, we will look at Microprofile Fault Tolerance, Failsafe and Resilience4J.

5 Grafana in Docker examples to get started with metrics, logs, and traces
  • Run vanilla Grafana with Docker (standalone setup)
  • Visualize Prometheus metrics in Grafana
  • Analyze logs in Grafana with Loki
  • Investigate distributed traces in Grafana with Tempo
  • Continuous profiling in Grafana with Pyroscope
Navigating Consistency in Distributed Systems: Choosing the Right Trade-Offs
  • Strong Consistency
  • Sequential Consistency
  • Causal Consistency
  • Eventual Consistency

    I’m currently working on a platform based on Hazelcast, and I’m refreshing my memory!

Do not Kick against the Pricks

Best. Advice. Ever.

So you want to parse a PDF?

The more I read about PDFs, the more I’m happy I never had to work with them at the lower level.

If you had to start over…​

A couple of gems:

  • Power Over Ethernet cables everywhere
  • Name all devices and entities based on the device and the manufacturer, not the location and use
  • Go Zigbee directly and skip the Wifi-plugs
  • Focus on Zigbee and Z-Wave for sensors and lights. No WiFi stuff unless completely unavoidable.
The enshittification of tech jobs

The article is depressing, but it’s hard to find any failing in the analysis.

Koalas vs. Crows: An Evolutionary Theory of Software

Interesting viewpoint. I especially love the beginning that describes how species manage energy expenditure.

Building Bluesky Comments for My Blog

I’ve been searching for ages for a system that manages comments for my blog. I started it on WordPress, so I used its comments system. When I migrated to Jekyll, I kept existing comments in the source articles, but I didn’t display them. I did add Disqus as a temporary measure—it’s still there, despite all its shortcomings. I read previously about authors hosting their comments on GitHub, like the post author did, but didn’t implement it. I won’t use Bluesky either, and will lazily continue searching for an alternative to Disqus.

I Asked AI to Build an App. It Made a Database Roasting Bot. We’re All Doomed.

This post is special. First, he’s written by my former boss, who became a friend. Another fact: during the time we worked together, I pestered him to write blog posts. He didn’t write a single one. Now that we aren’t colleagues anymore, he’s found his calling.

Next level Kotlin support in Spring Boot 4
HTTP is not simple

I often hear or see people claim that HTTP is a simple protocol. Primarily of course from people without much experience or familiarity with actual implementations. I think I personally also had thoughts in that style back when I started working with the protocol.

After personally having devoted soon three decades on writing client-side code doing HTTP and having been involved in the IETF on all the HTTP specs produced since 2008 or so, I think I am in a decent position to give a more expanded view on it. HTTP is not a simple protocol. Far from it. Even if we presume that people actually mean HTTP/1 when they say that.

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