Building LLM Apps in Java with LangChain4j

Image

Yesterday I gave a talk titled “Building LLM Apps in Java with LangChain4j.” The core idea was simple: building LLM applications is not mainly about writing clever prompts. It is about applying the same engineering discipline we already use in Java systems. The talk followed the staged evolution of a Spring Boot store assistant. It … Read more

AI-Assisted Java Development: An 18-Part Series

Image

I’m writing a series on what it actually takes to use AI well in Java development. Not the hype version. The engineering version. This series covers the full arc: how AI is changing the economics of software work, how it reshapes workflows and prompting, how to design agents and evaluate them properly, and how to … Read more

Structured Concurrency in Java 26: API Polishing, Timeouts, and Better Joiners

Image

Structured concurrency has reached its sixth preview in Java 26 through JEP 525, and at this point, it’s no longer experimental in spirit. The idea is simple and surprisingly powerful: if you start a few related tasks together, you should manage them together. They succeed or fail as a unit. This sounds obvious, but it’s … Read more

Zooming In: Profiling Just the Methods You Care About with JFR (JDK 25)

Image

  Sometimes you don’t want a full JVM profile. You just want to understand a narrow slice of code: which methods are called, how long each call takes, and how time is distributed across a call chain. With JDK 25, JFR’s Method Trace and Method Timing events (introduced by JEP 520) make this possible. You … Read more

When Does Java’s Foreign Function & Memory API Actually Make Sense?

Image

Every new Java release introduces a shiny feature. The Foreign Function & Memory (FFM) API, finalized in Java 22, is one of those headline acts: it promises safe native calls without JNI and off-heap memory you can manage. But the real question is not “can I use it?” but “should I reach for it?” The … Read more

Building Robust AI Applications with LangChain4j Guardrails and Spring Boot

Image

As AI applications become increasingly complex, ensuring that language models behave predictably and safely is paramount. LangChain4j’s guardrails feature provides a powerful framework for validating both the inputs and outputs of your AI services. This article demonstrates how to implement comprehensive guardrails in a Spring Boot application, with practical examples that you can adapt to … Read more

Speaking at GeeCON 2025: A Memorable Kraków Experience

Image

I had the pleasure of attending GeeCON 2025 in Kraków—my very first time at the conference. While the sessions were excellent, what truly stood out was the strong sense of community that made the experience special. I was also lucky to have some great conversations beyond the tech. I had a wonderful discussion with Shaaf, … Read more

Java’s Structured Concurrency: Finally Finding Its Footing

Image

The structured concurrency API changed again after two incubations and four rounds of previews. Ideally, this scenario is unexpected. However, given its status as a preview API, such changes can occur, as was the case here. These changes lend considerable maturity to the API, and I am hopeful it will now stabilize without requiring further … Read more

ধুলোর স্বাদ

Image

Part 1: Part 2   ধুলোর স্বাদ কেমন হয়? আমাদের কারোরই জানার কথা নয়! এও কি জানার মত কিছু? তবে ছ’বছরের ইউসুফ এখন এই স্বাদটার সাথে বেশি পরিচিত। ধুলোয় তার জিভেতে একটা যেন প্রলেপ পড়ে গেছে, গলার পিছনেও খানিকটা জমে আছে। মনে হয় একটা খসখসে পর্দা। “মা,” সে মাঝে মাঝে ভাঙা গলায় নালিশ করে, “আমার … Read more

Java + LLMs  + LangChain4j — 2025 Talk Series

Image

Shaaf and I have been heads‑down exploring how LangChain4j slots into everyday Java and Jakarta EE projects. Our experiments have grown into a full talk series. You can find a list of delivered and upcoming talks on my conference page: https://bazlur.ca/conferences/ Why we’re doing this LangChain4j gives Java devs RAG pipelines, vector‑store abstractions, and agent helpers without leaving the … Read more