
Virtual Threads: A Pocket Guide
What virtual threads solve, what they break, what happens when your database slows down, and why Java 25 made all of this far simpler than it was in 2023.

What virtual threads solve, what they break, what happens when your database slows down, and why Java 25 made all of this far simpler than it was in 2023.

Part 1 of 2. Why observability became the market standard after OpenTelemetry graduated from the CNCF, the minimum vocabulary to follow along, and what Quarkus gives you without writing a line of code.

Take messaging outside the application with SmallRye Reactive Messaging. Channels vs Topics, @Incoming, @Outgoing, Emitter, automatic JSON serialization, and Dev Services starting the broker without you installing anything.

Everything in software architecture is a trade-off. A deep dive into Chapter 1 of Fundamentals of Software Architecture: the 3 laws that govern every architectural decision and the 8 expectations of an architect.

Introducing Qlawkus, a set of Quarkus extensions for building personal AI agents in Java: memory that鈥檚 automatically injected, procedural skills, voice-enabled messaging, and composition via agent.yml.

Decouple components with Quarkus Signals. Type-safe resolution, @Receives, pub/sub vs unicast vs request-reply, and why Spring has no native equivalent.

Decouple components with the Vert.x Event Bus. Pub/Sub vs Point-to-Point, asynchronous consumers with @ConsumeEvent, and why Spring has no native equivalent.

There is a plugin system hiding inside the JDK that most developers never use on purpose. Java SPI (ServiceLoader) lets you add behavior without touching the code that consumes it. I show it with real code from my NES emulator, kill the fragile META-INF file with Google AutoService, cover the modern JPMS variant, and finish with how Quarkus does the same idea at build time.

LocalStack Community froze in March 2026 and now asks for an auth token. Floci is the no-strings-attached replacement: a free, MIT-licensed, Quarkus-native local AWS emulator. I test it for real: AWS CLI, a real Lambda, two ways of wiring a Quarkus app (Dev Services and Testcontainers), and a LocalStack migration.

Entities that save themselves! Refactor your orders application to the Active Record pattern with PanacheEntity, learn when to choose Repository vs. Active Record, and enter the reactive world with Hibernate Reactive and @WithTransaction.