Engineering With Java: Digest #66
Covering Java & Spring Boot related articles that matters!
Welcome to this week’s addition! This week’s collection includes:
AI-enhanced microservices
efficient pagination strategies
resilient workflow engines
adaptive threading
Featured articles cover practical implementations like Helidon MCP with Ollama, Spring Retry with transactions, lazy constants in Java 26, and automatic modules for bridging legacy code. Additional resources include an AI glossary for developers and insights into temporal workflows.
Explore LangChain4J agent orchestration, garbage collection choices, and OpenJDK evolution tips—offering a blend of cutting-edge practices and foundational knowledge for Java developers.
Consider becoming a free or paid subscriber and support the work :)
I am running Black Friday discount of 40% on our annual subscription , which makes java newsletter’s paid subscription at $1.6/mo ($30 annually) from $50. If you like to access premium content? grab this discount until 6th December.
📝 Articles Of The Week (8)
Anatomy of Helidon MCP + Ollama: Designing AI-Enhanced Java Microservices
This article explains how Helidon, LangChain4J, Ollama, and the Model Context Protocol (MCP) can be combined to build AI-enhanced Java microservices. It presents a reference architecture where a Helidon service uses an MCP client to call an MCP server that exposes external tools, while a local Ollama-powered LLM orchestrates those tools to answer user queries.
Offset and Keyset Pagination with Spring Data JPA: This article compares offset-based pagination and keyset pagination in Spring Data JPA. Offset pagination is easy to use with Pageable but it becomes slow on large datasets because the database must skip many rows. Keyset pagination avoids this by using the last-seen key to fetch the next results, making it far more efficient for deep paging. Since Spring Data JPA doesn’t support keyset pagination out of the box, you need custom queries or tools like Blaze Persistence.
Temporal Workflow Engine with Spring Boot: This article explains how to use Temporal with Spring Boot to build resilient, long-running workflows in Java. It covers setting up Temporal, defining workflows and activities, handling retries, failures, and external events, and leveraging Spring Boot’s dependency injection for easy workflow registration. This approach allows modeling complex business processes as simple Java methods with durable state and fault tolerance.
Adaptive Thread Allocation for Spring Boot Web Workloads: This article explains that Spring Boot applications can benefit from adaptive thread pools for background or I/O-bound tasks, allowing thread counts to scale dynamically with load. While fixed servlet thread pools ensure predictable request handling, using flexible pools for non-request work improves resource efficiency and handles spikes without impacting request latency.
Spring @Retryable With @Transactional: This article explains how to use Spring Retry with @Transactional so that each retry runs in a separate transaction. It covers both AOP-based (@Retryable + @Transactional) and programmatic (RetryTemplate + TransactionTemplate) approaches, ensuring retries don’t affect previous attempts. The key point is to isolate transactions per retry to prevent unintended rollbacks.
AI Glossary for Java Developers: Explains key AI concepts in a way tailored for Java developers. It covers terms like Generative AI, LLMs, embeddings, RAG, prompting, and hallucinations, helping developers understand the underlying ideas and vocabulary needed to work with AI tools and frameworks such as LangChain4J or Spring AI. The glossary bridges the gap between AI concepts and practical Java development, making it easier for developers to adopt and integrate AI in their applications.
Lazy Constants (Second Preview): JEP 526 introduces lazy constants, a new preview API in Java 26 that lets developers initialize immutable values on demand rather than eagerly. Unlike final fields, lazy constants are initialized at most once via a computing function, support constant-folding optimizations, and work safely in concurrent contexts. They improve application startup, enable deferred immutability, and can be aggregated in lazy lists or maps for flexible, efficient initialization.
Automatic Modules: Bridging Legacy and Modular Java: Automatic modules allow legacy JARs to run on the Java module path, helping bridge the gap between traditional and modular Java. They simplify migration without rewriting dependencies but can introduce issues with encapsulation and hidden dependencies.
▶️ Videos Of The Week (3)
Agent Orchestration with LangChain4J: This talk introduces LangChain4J’s agentic framework for orchestrating AI, non-AI, and human-in-the-loop agents in Java workflows. It shows how to build structured, tool-using, guard-railed AI services and combine them into sequences, parallel flows, or supervisor-driven processes. The speaker demos real examples, highlights the unified agentic scope, and points developers to tutorials, production tips, and upcoming LangChain4J sessions.
Garbage Collection in Java: Choosing the Correct Collector: Speaker highlights why picking the right Java GC matters, comparing throughput, latency, and memory trade-offs. He reviews major collectors—especially G1 and ZGC—and explains their goals: G1 for balanced, predictable pauses and ZGC for ultra–low latency. He shows how both have greatly improved from JDK 8 to 25, delivering much better performance with little tuning required.
OpenJDK Evolutions plus Tips and Tricks: Featuring Java experts discussing OpenJDK’s evolution, modern client development, Java on mobile, performance benchmarking, REST vs gRPC, and even automotive security using the FFM API. It’s a quick tour of how Java continues to advance across servers, clients, and embedded systems.
Some Helpful Resources
Everything Bundle (Java + Spring Boot + SQL Interview + Certification)
These Java/Spring Boot Articles Fellow Developers Are Reading
Thanks for reading this far! Consider becoming a free or paid subscriber and support the work :)



