Scaling Streams: Mastering Virtual Threads in Spring Boot 4 and Java 25
As a software architect, I’ve seen the industry shift from heavy platform threads to reactive streams, and finally to the “best of both worlds”: Virtual Threads. With the recent release…
Mastering Multi-Profile Environments with Spring Cloud Config
Spring Cloud Config simplifies configuration management for microservices, but its power truly shines when dealing with diverse environments. This post dives into how to leverage multiple profiles with Spring Cloud…
Goodbye Boilerplate: Mastering Declarative HTTP Clients in Spring Boot
For years, calling remote REST APIs in Spring Boot meant one of two things: wrestling with the aging, blocking RestTemplate, or writing verbose, reactive boilerplate with WebClient. While libraries like…
Using java.util.stream.Collector
You will find plenty of articles on how to create your own Collector, and calling Streams.collect() with a collector to gather the data into a collection. Learn how to add…
Spring CORS Configuration: A Comprehensive Guide
Cross-Origin Resource Sharing (CORS) is a security mechanism that browsers implement to restrict web pages from making requests to a different domain than the one that served the web page.…
Java’s missing TreeMap
One thing I have always found lacking in Java collections/containers is TreeMap. A simple class that takes a hierarchical approach to mapping data to a node. Given a hierarchical string…
Goodbye Resilience4j? Native Fault Tolerance in Spring Boot 4
For years, the standard advice for building resilient Spring Boot microservices was simple: add Resilience4j. It became the Swiss Army knife for circuit breakers, rate limiters, and retries. However, with…