<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Java on Victor Laurance - Software Engineer</title><link>https://laurance.dev/en/tags/java/</link><description>Recent content in Java on Victor Laurance - Software Engineer</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 09 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://laurance.dev/en/tags/java/index.xml" rel="self" type="application/rss+xml"/><item><title>Apache Kafka with Java: Architecture, Idempotence, and End-to-End Resilience</title><link>https://laurance.dev/en/blog/kafka-java/</link><pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate><guid>https://laurance.dev/en/blog/kafka-java/</guid><description>&lt;p>What actually happens when your application executes &lt;code>kafkaTemplate.send(...)&lt;/code>?&lt;/p>
&lt;p>If your answer is simply &amp;ldquo;the message arrives in a queue and a worker processes it&amp;rdquo;, you are operating Apache Kafka under the mental model of a traditional message broker like RabbitMQ or AWS SQS. Kafka is fundamentally different: it is an &lt;strong>immutable, append-only, distributed commit log&lt;/strong>.&lt;/p>
&lt;p>This difference changes everything: how you partition workloads, how consumers scale, how you guarantee delivery order, and, most importantly, &lt;strong>how you prevent duplicate processing or data loss when networks glitch or nodes crash&lt;/strong>.&lt;/p></description></item><item><title>Virtual Threads and Concurrency in Java 25 with Spring Boot 4</title><link>https://laurance.dev/en/blog/virtual-threads/</link><pubDate>Mon, 21 Sep 2026 00:00:00 +0000</pubDate><guid>https://laurance.dev/en/blog/virtual-threads/</guid><description>&lt;p>Every Java backend that needs to handle high concurrent traffic eventually runs into the same fundamental constraint: operating system threads are expensive. Each one reserves stack memory, and the operating system cannot sustain more than a few thousand of them without degrading. For years, the industry&amp;rsquo;s answer was migrating to reactive stacks: WebFlux, Reactor, and callbacks—trading simple imperative code for a programming model that is markedly harder to read and debug. Virtual Threads arrived specifically to eliminate that bottleneck without forcing developers to pay that complexity tax, and Java 25 has finally matured this capability far beyond its initial release in 2023.&lt;/p></description></item><item><title>Applying Hexagonal Architecture in a Spring Boot Application</title><link>https://laurance.dev/en/blog/hexagonal-architecture/</link><pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate><guid>https://laurance.dev/en/blog/hexagonal-architecture/</guid><description>&lt;p>If you have maintained a Spring Boot application long enough, you have probably seen business rules, controllers, and JPA entities all mixed up in the exact same place. It works—until the day you need to replace the database, write decent unit tests, or simply understand where business logic ends and the framework begins. That exact pain led me to study Hexagonal Architecture in depth, and in this article, I want to show how I applied these concepts in a real-world Spring Boot application.&lt;/p></description></item><item><title>Veira Streaming</title><link>https://laurance.dev/en/projects/veira/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate><guid>https://laurance.dev/en/projects/veira/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Veira is a streaming platform developed as a hands-on software engineering project.&lt;/p>
&lt;p>The goal of the project is to practically explore backend, frontend, distributed systems, architecture, messaging, cloud, and DevOps concepts.&lt;/p>
&lt;p>More than just building a video streaming application, the project functions as an engineering lab to experiment with different architectural strategies and document design trade-offs.&lt;/p>
&lt;h2 id="architecture">Architecture&lt;/h2>
&lt;p>The architecture is built and evolved incrementally.&lt;/p>
&lt;p>Key concepts explored include:&lt;/p>
&lt;ul>
&lt;li>Domain-Driven Design&lt;/li>
&lt;li>Hexagonal Architecture&lt;/li>
&lt;li>Microservices&lt;/li>
&lt;li>CQRS&lt;/li>
&lt;li>Event-Driven Architecture&lt;/li>
&lt;li>Distributed Systems&lt;/li>
&lt;/ul>
&lt;h2 id="backend">Backend&lt;/h2>
&lt;p>The backend is built with Java and Spring Boot.&lt;/p></description></item></channel></rss>