All Episodes

September 19, 2025 10 mins

In this episode of Breaktime Tech Talks, we focus on frameworks, libraries, and integrations that streamline workflows and enable more powerful applications.

Key Technical Topics Covered:

Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:05):
You are listening to the BreaktimeTech Talks podcast, a bite-sized tech
podcast for busy developers where we'llbriefly cover technical topics, new
snippets, and more in short time blocks.
I'm your host, Jennifer Reif, anavid developer and problem solver
with special interest in datalearning and all things technology.
I was on the road again this week tovisit the Seattle Java user Group.

(00:28):
Shout out to a fantastic andinquisitive group of people.
It was a great event.
There were really good questions, andI enjoyed speaking to everyone there.
Next, there are many more thingsin the pipeline, so I'll fill you
in on all the latest going on.
The first up is that on Tuesday, September16th, there were a couple of big releases.
The first is for Java.

(00:50):
Language version 25, and there weretons of things going on on social
media about all the exciting featuresand new things that are now here
in the Java programming language.
So if you're interested in checkingthat out, find the release or head
out to whatever professional socialnetwork you might be on, and I'm sure
you're able to find some things there.
The other one was Langchain4j hada 1.5 release, and I just kind of

(01:15):
skimmed a couple of things in thesocial post when I saw this on Tuesday.
And the thing that caught my eye isthere is an initial implementation
for an MCP registry client.
So now you can create MCPclients using Langchain4j.
This is something that was availablein Spring AI and Langchain4j just
hadn't added it yet, and now it's here.

(01:36):
I'm super excited to play around with thisand create applications that act as MCP
clients and interact with MCP servers.
So feel free to check out therelease information on that as
well and play around with that.
I definitely will be playing with bothof these things in the coming weeks.
I just haven't had achance to get there yet.
The next thing is that Spring Initializer,I noticed before Tuesday actually updated

(01:59):
their default Java version from 17 to 21.
So now if you go out to their SpringInitializer page, and you start
filling in details to create a newapplication, the automatic default
for the Java version is now 21.
So just be aware of this.
When you go out and create projects,if you're looking for a particular
version or if you had to changeversions previously for something,

(02:21):
you might need to tweak your flowa bit to add or subtract the step.
Another one is I created a blogpost that actually got pushed out
late last week, I believe, butit's on text-to-cypher with MCP.
This was a lot of fun.
I've done some text-to-cypher with MCPbefore, but I really wanted to focus and
narrow down the scope a bit and focus inon just the MCP and text-to-cypher piece,

(02:46):
where before I had integrated it alongwith some other things in my application.
I created a new code repository thatjust has the MCP text-to-cypher bits in
it, and it's just a basic integration.
There's not really much else code toclutter things up, so feel free to
check that out if you're interested.
And then of course, the blog postwill walk you through all of that.

(03:07):
I also played around with a littlebit of generating some embeddings
in Ollama for neo forgi data.
Tested this out a bit before, butreally haven't dug deep on it.
So I wanted to spend some time hereand try to get some Ollama embedding
spun up and play around with graphrag solutions using Ollama to see
what the solutions looked like and seeif it worked for my data and so on.

(03:27):
I'm in the process of that, but I hita couple of road bumps along the way.
The first is that the Cyphergenerative AI procedures.
Don't support Ollama embeddings just yet.
You can create and generate andstore embeddings using some out
of the box Cypher procedures.
However, they typically only gowith OpenAI or Google's gemini

(03:50):
models so they don't support Ollama.
However, there is potentially workin the pipeline to add that feature.
It's just not there yet.
Okay, that didn't work.
What's my next alternative?
That's where I turn to APOC,which is Neo4j's awesome
procedures on Cypher Library.
And APOC does support Ollama, althoughit doesn't specify this clearly in the

(04:11):
documentation, you just need to tweak acouple of the parameters in the OpenAI
one because Ollama follows the OpenAImodels format for creating embeddings.
You just have to modify the base URL inthe APOC procedure and a couple other
things and you should be good to go here.
I haven't tested this out myself,but I will be here shortly.

(04:32):
I will keep you posted on that.
Another one that I worked onthis week was Spring AI advisors.
I dug really deep on this.
This week.
I'm prepping some content for, a blogpost and I wanted to really dive in
and figure out what are the benefits ofthe advisors, what are the drawbacks?
What are the tips and tricksand things around this.

(04:53):
I played around with the Q andA advisor, which works well.
It's pretty standard.
Nothing super graph about it though.
So if you're wanting to do graphrag, there's a little bit of
uplift you have to do to add that.
And then the Retrieval AugmentationAdvisor, which is a series of
RAG modules that are supposed tobe composable and customizable.

(05:14):
I hadn't really playedaround with this too much.
In fact, when I initially saw this, Iwas a bit confused on how you added it
in and what it did differently and whyyou needed that on top of the QA advisor.
But after digging more onthis, I really like it.
So the graphrag python package inNeo4j does this similar thing where

(05:36):
you can create a customizable pipelineof certain steps that you need to
enact in your graph rag solution.
You might need to extract some data.
You might need to filter it, you mightneed to, Add and subtract from it or
manipulate somehow, pass data back andforth and so on before you send the
request to the large language model.

(05:57):
And the retrieval Augmentationadvisor is kind of a similar thing
for Spring AI, however it is, Iwill say, less GraphRAG friendly.
Again, so I've noticed that Spring AIis designed very heavily toward the
traditional vector database format andthe properties and the schema kind of
setup that a vector database moves around,but not so much for any of Forche graph.

(06:22):
So you kind of have to tweak somethings to have it fit the Spring AI
model, which again is totally fine.
There isn't a current way to customizethe mapping of some of the fields
to the Spring AI document entity.
That's really the biggest holdup.
The generic document entity that theyuse in Spring aI is an id, a text field,

(06:43):
and then metadata, and so you haveto format your entities in whatever
database you happen to be working within that structure, Id, text, and nested
metadata, which of course is not veryNeo4j or graph native, so I haven't
found a good way to map those manually.
So that means your data on the backendin the database has to be set up
to automatically map those things.

(07:05):
Again, this feature may be coming or maybeit's something I've missed, but it hasn't
been easily apparent to me how to do that.
We also have, at Neo4j, our big onlinefree conference called NODES 2025.
That is coming up in November.
I will have a link for you to jumponto that if you're interested.

(07:26):
There is tons of free, amazing contentfrom customers and internal Neo4j folks
and community members, and just peopleall around the world doing really
amazing things with graphs and data.
If you're interested in checkingthat out, I highly recommend it.
It is one of my favoriteevents every year.
So definitely, sign up for that and checkout at least some of the content, even

(07:48):
if you don't spend the full 24 hours ofnonstop excitement throughout the day.
I did run across a piece of content Idefinitely wanna share here, it's called
integrating Neo4j with Langchain4j forGraphRAG Vector Stores and Retrievers.
This was an article that was created bySomeone I've worked with on the Apoch

(08:09):
project before, someone who's, very activein the community and is a really excellent
resource for this type of content.
And I found this blog post tobe in that same vein as well.
It's an amazing blog post that covers alot of ground and helps you understand the
nuts and bolts of putting together a graphrag solution with Neo4j and Langchain4j.
Now, also they used, Spring inorder to incorporate Langchain4j and

(08:34):
Neo4j, which I found interesting.
This is a common thread.
People will create a Springapplication, and then they'll pull
in the Langchain4j Library and,you know, Neo4j driver dependencies
and so on and integrate this way.
And this is exactly the example thatthis article walks through as well.
The article goes through how tostore the embeddings in Neo4j.
So you have data you need to storethe embeddings inside the database,

(08:57):
and then how to retrieve those with avariety of different configurations and
customizations you might need to make.
It includes examples on howto add some retrieval queries
alongside your vector search.
So this is where the hybrid RAGor graph RAG comes into play.
You have that vector search you need toadd on a retrieval query to pull some
additional data in the graph, and thisarticle walks through that as well.

(09:19):
This is something I do need to look atagain because the last time that I did
Graph RAG and Langchain4j, I ended updoing it manually with a vector search
call and then a graph retrieval call.
But according to this article, itlooks like you should be able to
tack one to the other, kind of likein LangChain, which I found to be
a really good experience there.
So if Langchain4j has this now, thiswould be awesome and I need to go back

(09:41):
and update my content as well as myapplications that I built a while back.
There may be a nicer way to do this.
Now, this is a little bit of a differentapproach than Spring AI Langchain4j right
now does feel a bit more Neo4j native.
However, Spring AI and Langchain4jremain at a race with one pulling
ahead before the other takesthe lead and then back again.

(10:04):
So one is not necessarilybetter than the other.
It kind of depends on what you'reworking with and how you wanna
integrate and the data and so on.
I'm really excited that, they'recontinuously adding features and
pulling things together that makeexperiences for developers really nice.
This was another exciting week inthe books with many more to come.

(10:24):
This week was a lot of work aroundSpring AI and Neo4j, but Langchain4j
made a splash with a new release and whatlooks like some exciting new features.
The article I read also integratedall three of these tools by using a
Spring application with Langchain4j andNeo4j to build a graph RAG solution.
As always, thanks forlistening and happy coding.
Advertise With Us

Popular Podcasts

Stuff You Should Know
Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Follow now to get the latest episodes of Dateline NBC completely free, or subscribe to Dateline Premium for ad-free listening and exclusive bonus content: DatelinePremium.com

The Breakfast Club

The Breakfast Club

The World's Most Dangerous Morning Show, The Breakfast Club, With DJ Envy, Jess Hilarious, And Charlamagne Tha God!

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.