Showing Post From Spring-Boot
Caffeine From First Principles: The Guarantee getIfPresent Doesn’t Make
Here’s a cache read. Three lines, no locks, nothing clever. It has a concurrency bug, and so does the identical code inside a library you may already depend on.
Read moreYour Feature Flag Bill Is a Cache Key Problem
A client exceeded their feature flag vendor’s monthly request quota by 100%.
The two fixes everyone proposed were delete the dead flags and stop calling flags inside loops. Both are sensible. Both save exactly zero requests.
Read moreThe N+1 With No Query In It: JPA Fetch Types From First Principles
An export endpoint died at thirty seconds. Not degraded, died: the platform router gave up, the browser reported a CORS failure that had nothing whatsoever to do with CORS, and the UI showed a toast saying something went wrong.
I had three hypotheses inside twenty minutes of reading code. All three were wrong.
Read moreThe Production Outage — Where the Fix Was Worse Than the Bug
One missing property line.
Two production outages.
The hot fix between them made the second one inevitable.
Read moreThreads, @Async, @Transactional, and Virtual Threads: What Actually Happens Inside a Spring Boot Backend
A webhook fires. One HTTP request comes in.
Ten seconds later, half the app is returning 503s.
The bug is not in the webhook.
Read moreWhat Jackson Doesn’t Deserialize for Free: The Empty Array That Took Down a Production Endpoint
A 503. Every 30 seconds, on the dot.
Sentry was empty. The application logs said the request was fine.
Then we looked at what Jackson was actually parsing.
Read more




