All Episodes

October 17, 2025 10 mins

In this episode of Breaktime Tech Talks, dive into the real-world challenges and discoveries from my recent work with Langchain4j, Quarkus, and Neo4j. If you’re a developer navigating the evolving landscape of AI, vector search, and graph databases, this episode is packed with practical insights and lessons learned.

Highlights:

Tune in for practical advice, honest roadblocks, and new ideas for building smarter, more flexible developer tools!

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 data,learning, and all things technology.

(00:25):
Fall is always a busy season for both workand home, but I'm doing my best to soak
up bits and pieces amongst the hustle.
I have an upcoming GraphRAG trainingthat I'm giving, and I was trying to
create a Langchain4j version of theSpring AI app I'm using for that class,
but I ran into several roadblocks thatdon't currently have a resolution.

(00:46):
Then I happen to come across anarticle where vector search was
wrapped into an MCP server that anotherapplication could call as a tool.
I'll get into more details.
Let's get started.
The first roadblock I came across thisweek was trying to convert a Spring AI app
that I had and that I'm using for a coursenext week into a Langchain4j application

(01:08):
with Neo4j and some generative AI stuff,and the biggest thing that I came across
was that Langchain4j and Quarkus seemto default to an auto configuration for
the embedding store, which is great.
Super nice.
A lot of frameworks will do this for you.
But I think the standard approach is todo one type of RAG in an application,

(01:31):
and it's not super easy to configurevector RAG and GraphRAG together.
So you can configure a retrieval query,but you will set that through a property,
in the application properties or theproperties file But when you set that,
it's true across all instances of thevector store, beans or instances you might

(01:54):
use across classes, packages, whatever.
It picks that configurationup from the properties file.
But what if you wantedto have more than one?
For instance, I wanna run vectorsearch without the retrieval query,
and then I want to run a hybridsearch, vector plus graph retrieval.
And I currently cannot finda way to simply do this.

(02:15):
there doesn't seem to be a way toconfigure one embedding store for
vector and one config for hybrid, andit's clunky to do hybrid search vector
plus graph in Quarkus and Langchain4j.
There's nothing like advisorsor they do have RAG modules.
But again, the way that you configure themis very configure one and done, and you

(02:37):
can't really customize that easily, Also,the only retriever option for Neo4j that I
can find is text-to-cypher, which is cool,but it does feel a little bit obsolete
in light of something like the MCP Cypherserver, which basically does that, and
it's already provided to you and you don'thave to recreate the wheel by building
that functionality into your application.

(02:58):
You just use Neo4j's MCP Cypher server.
So that was something I wasa little bit bummed about.
And then that leaves us with the onlyway to do hybrid search, vector plus
graph, is to write it all manually.
There's no abstract or streamlinedway to jump into that workflow.
Again, you can configureyour workflow and run it.

(03:20):
But you don't have a whole lot ofcustomization to say, Hey, I wanna
configure it this way for this methodand this way for another method.
There doesn't seem to be a good way to dothat, The other thing that stopped me dead
in my tracks and just left me with a nogo, I can't convert this app right now, is
that you can't configure the applicationto use a read only role on the database.

(03:45):
When you do Langchain4j and Quarkus,it requires you, when you use Neo
four J Vector store, at least itrequires you to have create constraint
privileges for the Vector index.
When I came across this, I was what?
There's no way they have tohave some sort of property.
Spring AI has some sort of property.
They have an initial is schemaand you can set that default.

(04:06):
And I did some research and there wereseveral things that popped up that made
it seem yes, this should be configurablefor Langchain4j, but I could not find it.
so this stopped me dead in the tracks.
I was working with a read only database.
I don't really want to have to spin up abrand new database and have to deal with
giving it right privileges and so on.

(04:26):
This is supposed to be a public readonly database that anybody can access.
There should be a way that you don'thave to force your application to
have right privileges to the database.
That just seems wrong to me.
This is something that I was a littlebit frustrated by and quite bummed
about actually, because I feel likethat should be a default configuration.
I looked at some of the other data storesthat are available in Langchain4j, and

(04:48):
I know at least MongoDB offers thatconfiguration property, but it's just not
available in all of the vector stores.
Oh, and by the way, most ofthe straight up native vector
stores don't really need this.
I think a lot of it is because ofthe type of data store that they
are and the types of use casesand how they're being used today.

(05:10):
Most of your.
vector plus something else.
So where they've added vector indexesontoanother data model, for instance,
something like a document database,a no SQL database, a graph database,
a relational database, and they'vetacked on vector support, will have
some sort of this configurationparameter to say don't write to the
database, to initialize the schema orcreate the vector index in this case.

(05:31):
But Neo4j is one of the few thatdoes not offer this right now.
Hopefully that will be added.
I would love to see that there.
I will definitely be submittingan issue to the GitHub repository.
maybe even trying to see if I can get aPR in on that to see if I can change that.
Also, someone asked me a question thisweek about, data importer and pushing

(05:53):
data back and forth from SQL Server.
And so I pulled up documentation,sent the documentation along,
it looks a little out of date.
this documentation doesn't show SQLServer, but I went into the data
importer tool and it does show it there.
So I took a screenshot and sent thatalong, plus the link to the docs, and
then went back to the documentation team.
We offer way more options for dataimport now in our data importer tool.

(06:14):
And there's two separate documentations,one for a data importer standalone tool
where you can spin up your own dataimporter tool as a totally separate thing.
And then there's a different linkfor the data importer tool in Aura,
which provides a lot more of thosecapabilities for integration with

(06:34):
other types of data import, andback and forth data flow between
other types of databases and Neo4j.
So I found this was really interesting.
There are two separatedocumentation pieces.
One for standalone data importerand one for Aura data importer.
But I think there is going to besome updates now to at least a link
between the two so that you can findif you have gotten to the wrong one

(06:55):
and need to go to the other one.
That should be coming, but I did not knowthere were totally separate documentation
pieces for whether you're running the dataimporter tool, standalone or within Aura.
Next, I mentioned that I was working onthe Langchain4j and Quarkus app for the
online training that I'm giving next week.
I do have a GraphRAGFundamentals online course.

(07:16):
If you happen to be part of theo'Reilly Media, subscription, then you
should have access to join the course.
You are more than welcome to do so.
It's about three hours long.
It will be, hands-on interactive,some slides, some demos, some
walkthrough exercises, and so on.
I would love to see you there.
but I will definitely be postingsome follow-ups and things that I've

(07:39):
learned and things that I reallyenjoyed about that in the future.
Also Neo4j's big online conference is inless than a month now it's nodes 2025.
Just a couple of weeks now.
Don't forget to registerand scope out the agenda.
Plus Andrew Ng is a keynote speakerthis year, which is super exciting.
And we have also some other amazingkeynotes and key speakers that are

(08:02):
coming and speaking at the event.
Lots of content.
It will be a jam packed 24 hours.
It is totally free and entirelyvirtual, and there is content that
is spanned again across 24 hours.
So no matter where you are inthe world, there is something
that will fit your schedule.
Check that out.
I will leave the link in the show notes.

(08:22):
I'm also working on a Java book with aco-writer, which I'm super excited about.
I am enjoying getting back intothe writing swing of things,
and I will keep you posted withmore details in the future.
Next, I came across a piece of contentthat was a bit serendipitous because
I had talked about dealing withLangchain4j and Quarkus and Spring

(08:44):
AI and trying to write vector plusgraph retrievals being a little bit
complicated due to that hybrid search.
And I just came across an articlefrom Neo4j's developer blog
that's called Implementing Neo4jGraphRAG Retrievers as MCP server,
which I found really interesting.
And working through the blog post,it talks about wrapping a vector

(09:06):
similarity search as an MCP serverand then exposing that so that other
applications can ping that tool.
The blog post walks through howto customize the retriever so that
the embeddings aren't being passedthrough the large language model,
which can get expensive, chew upa lot of resources, and so on.
Then the blog post walks throughhow to expose it as a tool for an

(09:28):
agentic application to call and use.
This could also open the doors for solvingthe GraphRAG problems I keep running into.
Instead of coding the vector searchplus graph retrieval in every
application that I write, I couldbuild an MCP server that exposes the
tool and other apps could call that.
This makes the functionalityconsistent, reliable, and reusable,

(09:50):
and reduces a lot of the headachesthat I've been dealing with lately.
This week was full of interestingcontent a few roadblocks with
Langchain4j and Quarkus, and somedifferences between that and Spring AI.
Hopefully I will have somebreakthroughs on that soon.
I have a GraphRAG Fundamentalsonline course coming up, and NODES

(10:11):
2025 is just around the corner.
And I'm getting back into the swingof things by working on a Java book.
Then we talked about how to implementGraphRAG retrievers as an MCP server.
As always, thanks forlistening and happy coding.
Advertise With Us

Popular Podcasts

Stuff You Should Know
Las Culturistas with Matt Rogers and Bowen Yang

Las Culturistas with Matt Rogers and Bowen Yang

Ding dong! Join your culture consultants, Matt Rogers and Bowen Yang, on an unforgettable journey into the beating heart of CULTURE. Alongside sizzling special guests, they GET INTO the hottest pop-culture moments of the day and the formative cultural experiences that turned them into Culturistas. Produced by the Big Money Players Network and iHeartRadio.

Crime Junkie

Crime Junkie

Does hearing about a true crime case always leave you scouring the internet for the truth behind the story? Dive into your next mystery with Crime Junkie. Every Monday, join your host Ashley Flowers as she unravels all the details of infamous and underreported true crime cases with her best friend Brit Prawat. From cold cases to missing persons and heroes in our community who seek justice, Crime Junkie is your destination for theories and stories you won’t hear anywhere else. Whether you're a seasoned true crime enthusiast or new to the genre, you'll find yourself on the edge of your seat awaiting a new episode every Monday. If you can never get enough true crime... Congratulations, you’ve found your people. Follow to join a community of Crime Junkies! Crime Junkie is presented by audiochuck Media Company.

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

Connect

© 2025 iHeartMedia, Inc.