29 May 2026

feedDZone Java Zone

Zero-Downtime Deployments for Java Apps on Kubernetes

This article provides a comprehensive guide to achieving zero-downtime deployments for Java-based applications on Kubernetes.

We cover deployment strategies, Kubernetes primitives, Java-specific considerations, session state handling, database migrations, traffic shifting techniques, CI/CD pipelines, GitHub Actions, Jenkins with automated rollbacks, observability (Prometheus, Grafana, Jaeger), Helm/ArgoCD examples, testing strategies (canary analysis, chaos, smoke tests), and troubleshooting.

29 May 2026 2:00pm GMT

Pragmatica Aether: Let Java Be Java

The Aberration

We build Java applications like Go or Rust programs. Fat JARs. Docker images. Kubernetes deployments. Everyone does it, so it looks normal.

It contradicts Java's design DNA.

29 May 2026 1:00pm GMT

27 May 2026

feedDZone Java Zone

Stateless JWT Auth Microservice Architecture With Spring Boot 3 and Redis Sentinel

In this article, I will discuss a highly available solution developed using Spring Boot 3 and Spring Security 6 to address the "centralized authentication method" problem frequently seen in modern microservice ecosystems.

We are not simply moving to an "authorization service"; we are examining the cache-first pattern, which minimizes DB usage, and the Redis Sentinel enhancement, which guarantees system persistence.

27 May 2026 7:00pm GMT

26 May 2026

feedDZone Java Zone

Rethinking Java CRUDs With Event Sourcing and CQRS Patterns

Traditional CRUD systems store only the current state of an entity. When a record is updated, the previous value is overwritten and lost forever. Event Sourcing inverts this model: instead of persisting state, the system persists the sequence of events that caused each state transition. The current state is never stored directly, but it is always derived by replaying the event history.

Command Query Responsibility Segregation (CQRS) separates the write model from the read model. A command expresses intent to change state, for example PlaceOrder, AddItem, ShipOrder. A query reads state without modifying it. The two sides use separate models, separate logic, and, in a full implementation, separate storage.

26 May 2026 3:30pm GMT

20 May 2026

feedDZone Java Zone

Detecting Bugs and Vulnerabilities in Java With SonarQube

The security audit report landed unexpectedly. It highlighted a critical vulnerability in our payment processing module. We had passed all unit tests. We had passed all integration tests. The code review looked clean. Yet the auditors found a hardcoded API key hidden in a utility class. This key allowed access to our third-party payment gateway. Anyone with access to the repository could see it. We were lucky the auditors found it before a malicious actor did. This incident was a wake-up call. We realized manual code reviews were not enough. We needed automated static analysis. We needed SonarQube.

In this article, I will share how we integrated SonarQube into our Java development workflow. I will explain the specific rules that exposed our vulnerabilities. I will detail how we configured quality gates to prevent future regressions. This is not a generic installation guide. It is a record of how we shifted security left in our pipeline. Static analysis is not just about finding bugs. It is about building a culture of quality.

20 May 2026 6:00pm GMT

Introduction to Tactical DDD With Java: Steps to Build Semantic Code

Modern software systems rarely fail due to poor coding skills. Most failures occur when teams lose sight of the business problem they are addressing. As systems evolve, requirements shift, teams expand, and new integrations are added, codebases often become collections of technical decisions that lack business context. Classes become generic managers and services, methods devolve into procedural scripts, and communication between developers and domain experts diminishes. Tactical Domain-Driven Design (DDD) addresses this issue by emphasizing software that directly reflects business language in code, rather than focusing solely on infrastructure or frameworks.

The term "semantic" comes from the Greek semantikos, meaning "significant" or "meaningful," which is central to Tactical DDD. The objective is not just to reorganize classes, but to ensure code communicates intent clearly to both engineers and business experts. In modern Java systems, where complexity increases due to distributed architectures, integrations, and ongoing business changes, this clarity is essential for long-term maintainability.

20 May 2026 3:30pm GMT

AI Agents in Java: Architecting Intelligent Health Data Systems

Executive Summary

Modern health data analytics increasingly leverage AI agent software components that process information and make decisions, often using large language models (LLMs) or machine learning models. In Java, you can build agentic systems using libraries like DJL (Deep Java Library), Spring AI, or by integrating LLM APIs. This document includes Maven setup, minimal Spring Boot code (controllers and services), a simple agent example, diagrams, and a comparison of different agent approaches.

Flowchart

Flowchart image

20 May 2026 3:00pm GMT

19 May 2026

feedDZone Java Zone

Ujorm3: A New Lightweight ORM for JavaBeans and Records

"Do the simplest thing that could possibly work."

- Kent Beck, creator of Extreme Programming and pioneer of Test-Driven Development.

19 May 2026 6:00pm GMT

OpenAPI From Code With Spring and Java: A Recipe for Your CI

This is not "just another article about Springdoc," I promise. This is a ready-to-use recipe I was struggling to find one day, and had to build it from scratch.

Have you ever needed to generate OpenAPI documentation directly from your code and, more importantly, do it in a way that fits cleanly into a CI pipeline? Swagger UI is commonly used in Spring Boot applications to visualize and test APIs from the browser. It can also expose the generated OpenAPI definition through a configurable endpoint, and that endpoint is exactly what we will use in this article.

19 May 2026 2:00pm GMT

15 May 2026

feedDZone Java Zone

Building an Image Classification Pipeline With Apache Camel and Deep Java Library (DJL)

Image classification is now a key part of many applications. Whether you're automating photo organization, filtering uploaded content, or enriching product catalogs with visual tags, knowing what's in an image can be just as important as knowing what a user typed.

For Java developers, the challenge is familiar: most computer vision examples live in Python notebooks, while the systems that actually need image classification run on the JVM. Bridging that gap usually means standing up a separate Python microservice, managing REST calls, and dealing with serialization overhead. That's a lot of ceremony for what should be a single processing step.

15 May 2026 8:00pm GMT

14 May 2026

feedDZone Java Zone

How to Test a DELETE API Request With REST-Assured Java

API testing has become increasingly popular in recent times. Since it doesn't involve a UI, it is generally faster and easier to execute. This makes API testing a preferred choice for validating end-to-end system functionality. Additionally, integrating automated API tests into CI/CD pipelines enables teams to receive quicker feedback on their builds.

In this tutorial, we will explore DELETE API requests and learn how to handle them with Rest-Assured in Java for automated testing. The following topics will be covered:

14 May 2026 2:30pm GMT

13 May 2026

feedDZone Java Zone

How to Test a PATCH API Request With REST-Assured Java

Testing is an essential step in the API development process to ensure that APIs are working correctly. There are multiple HTTP methods in RESTful APIs, including POST, GET, PUT, PATCH, and DELETE. In our earlier articles, we learned how to perform automated testing of POST, PUT, and GET APIs using Rest-Assured Java.

In this tutorial article, we will discuss and cover the following points:

13 May 2026 1:30pm GMT

12 May 2026

feedDZone Java Zone

Solving the Mystery: Why Java RSS Grows in Docker on M1 Macs

The Problem

You're running a Java application in a Docker container on your M1 Mac. Everything works fine, but you notice something strange: The resident set size (RSS) keeps growing, even though your heap usage is stable. After hours of investigation, you find mysterious rwxp memory regions, each exactly 128 MB, accumulating in your process memory map.

What's causing this? Is it a memory leak? A JVM bug? Something else entirely?

12 May 2026 7:00pm GMT

11 May 2026

feedDZone Java Zone

Improving Java Application Reliability with Dynatrace AI Engine

Modern Java applications require robust observability and automated intelligence to ensure reliability at scale. Dynatrace's AI-driven platform continuously learns application behavior, establishes statistical baselines and applies deterministic, causation based analysis to detect anomalies and pinpoint root causes.

By correlating metrics, logs, traces, and topology context across applications, services and infrastructure, Dynatrace can automatically highlight the true source of problems and assess their impact. This drastically reduces alert noise and MTTR .

11 May 2026 12:00pm GMT

08 May 2026

feedDZone Java Zone

How AI Is Rewriting Full-Stack Java Systems: Practical Patterns with Spring Boot, Kafka and WebSockets

Building real-time applications means balancing user responsiveness with heavy backend processing. A proven solution is to decouple heavy workloads using events and asynchronous processing. In this approach, a Spring Boot application quickly publishes events to Kafka instead of processing requests inline. Then Kafka consumers (with AI/ML logic) handle the data in the background, and the results are pushed to clients in real time via WebSockets. This article highlights three key patterns enabling this architecture:

  1. Event Production with Spring Boot and Kafka
  2. AI-Driven Processing in Kafka Consumers
  3. Real-Time WebSocket Delivery to the Frontend

Event Production with Spring Boot and Kafka

The first step is capturing an event and publishing it to Kafka. By offloading work to Kafka the application can respond immediately to the user without waiting for processing. Spring Boot's integration with Apache Kafka provides a KafkaTemplate to send messages to topics.

08 May 2026 2:00pm GMT

07 May 2026

feedDZone Java Zone

How to Test PUT API Request Using REST-Assured Java

PUT requests are typically used for updating an existing resource. This means replacing the current data for the target resource with the data sent in the API request body.

Just like POST requests, the content-type header is important because it tells the server how to interpret the data we're sending.

07 May 2026 2:30pm GMT