- 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.