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.
There were lots of exciting updates thisweek, the first being that I was inducted
(00:27):
as a member of the Java Champions group.
I'm truly honored to be a part of such anintelligent community of Java developers
and to continue my learning journey.
This week's podcast focuses on contentand exploration with Java frameworks
versus not, then a super excitingdevelopment with a Java AI framework.
Without further ado, let's get started.
(00:47):
The first thing this week is that Iwas able to get a blog post out on
the Neo4j Java driver object mappingfeature that's relatively new.
I've mentioned this in previousepisodes of the podcast, but I was
now able to get a blog post detailingmy process for putting together
the code repository i showing how Icreated the application and so on.
And I've also made some updates tothe related GraphAcademy Using Neo4j
(01:12):
with Java course that will includesome object mapping stuff as well.
And that should be outand released next week.
So if you're looking at taking theGraphAcademy course, I would look
at maybe first thing next weekseeing if you can take it then.
It will have the objectmapping included for that.
Then I also have been playing around withfor the last few weeks or so now with
(01:32):
framework-less Java applications, and thensome other frameworks as well with Java.
I've created a couple framework-lessapps for various projects now, the
GraphAcademy course and the object mappingrepository and blog posts that I just
put together and some other things too.
I followed a tutorial that wasa pretty quick setup, pretty
easy to follow along with.
I'll have that linked as well, and Istarted playing around with creating
(01:55):
a sample REST API this way as well.
I haven't been super successfulyet, but I'm still working
through that and exploring it.
What I found is that Spring has puttogether some super nice functionality
for creating a rest API just makes itreally easy and quick to spin things up.
There's very little boilerplateand they do a lot of that through
annotations for creating your restAPI endpoints, and this is super nice.
(02:19):
I love doing it this way.
I still probably will default back tothe, the Spring way of doing things.
However, I wanted to get some experienceand explore the way other frameworks do
it, as well as what does it all entailwhen you don't use a Java framework.
So kind of getting the pros and consof all of these options out there.
And again, it's a lotmore work, I've found.
(02:40):
And digging in and understanding what'sgoing on under the hood I found has been
really helpful, if not, just a littlebit more time consuming than I'd hoped.
The Java framework stuff that I've beenworking with, I have explored a bit about
Javalin, which is a lightweight Javaframework that is being used right now
in one of our GraphAcademy Java courses.
And I've had some previousexperience with this.
(03:01):
I'm kind of digging back in on it andplaying with the framework and seeing
what it offers and how it does things.
That's been fun, just differentthan what I'm used to.
So good learning there.
I also have some plans for playingaround with some other Java frameworks
as well, things maybe like Quarkusor Spark or some other things
too, and just seeing how creatingapplications with those work as well.
(03:23):
And hopefully I'll have somecontent updates there and showcase
what I've learned and the kind ofstumbling blocks I've hit and so on.
Again, Spring kind of abstracts a lotof this stuff away, so getting my hands
messy with exploring what's out thereand how each different framework or
non framework handles things has beena really good learning experience.
I also wanted to add just a kind oflearning tidbit that I've picked up.
(03:47):
Many of you probably have the same tidbitas well, but each time I go in and need
to make a bunch of changes to a coderepository, an application, I have a
two-pronged approach that I want to take.
So either I want to go in and just makevery minimal changes, one at a time.
Or I want to go in and revamp andalmost rebuild from the ground up with
(04:10):
all the things that I want to refactorand clean up and update and so on.
And I've found through a blend of tryingone over the other that even when I start
with kind of the weed whacking approachwhere I just go in and hack a bunch of
things away and then kind of build up fromthe ground up, that it's a much better
approach actually to start with verysmall changes and just layer those on.
(04:32):
So the more I do it, the more Irealize that it's easiest to do
changes in layers or in stages.
For instance, the application thatI'm reworking for the Java course on
our GraphAcademy, I've just startedwith dependency version updates.
I. And any syntax changes thatI needed to make the code work.
Again, I went in and started refactoringand revamping and updating a bunch
(04:55):
of things and it just ended upgetting really messy very quickly.
It's too easy to get into the weedsand cause really confusing git diffs,
blurring a lot of different changesinto one massive one that then it's
really hard to disentangle later.
So I've worked my way back and, andbrought myself back from the brink
of that ledge a bit and tackledone very small thing at a time.
(05:16):
So.
All, I updated the library versionsfirst and then just fixed any syntax
changes that needed to, things likedeprecated methods and any other things
that I needed to make the code work.
And I went through and tested all thefunctionality to make sure it all worked.
Then pushed that change upto GitHub and it's sitting in
ready for review right now.
And then, and the next stage will beto go in and tweak some things for like
(05:40):
refactoring code or best practices onthe Cypher or the new Java updates or
some of the library recommendations forimproving and slimming down some of the
functionality that's there and so on.
I will do this in stages.
That also makes it really easy toeither commit or publish certain small
modular changes and then to work on someother changes for a little bit longer.
(06:05):
You're not having to wait on thechange that's taking the most time
in order to push all these things in.
And you can always in GitHubsay, Hey, this change is
dependent on this other one.
So you don't end up pushing thingsand, and putting things in that
aren't ready to go quite yet.
But you can merge things that arealready ready and just modularly
improve things very minimally over time.
(06:27):
This, I find, is a much better approach.
I will probably have to continuouslyremind myself of this because, as is
human nature, we want to go in and wewanna fix everything all at once, right?
But I've just found that's notnecessarily the most efficient or
cleanest approach to updating andrefactoring code repositories.
Hopefully you'll find this aswell, or maybe you're really
(06:47):
good at that long swath rebuildeverything from the ground up.
That's definitely an avenuethat you could take as well.
Alright, the content I'm super excitedto get to today because Spring AI 1.0
is finally general availability release.
There are a couple of blogposts I'm going to talk about.
The first one being fromJames Ward at AWS, which was
(07:08):
also co-written by Josh Long.
And it walks through combiningAWS, Spring AI, and MCP, and some
other things along the way as well.
This, blog post is called Spring AI1.0 Brings AI to the Developer Masses.
This was a super cool articleand really well written.
It covers an architecture of an agenticsystem with a couple of agent tools and
(07:30):
an MCP server, and then it walks throughbuilding each component and getting them
connected up into a full agentic system.
There is also a cameo by Kotlin too, soif you're a Kotlin developer or exploring
that, you'll get a little Easter egg,I guess, in that first bit of the blog.
I also really loved the alignmentof showing the architecture, how the
(07:52):
process is working, the different toolsand components that you would need.
And then stepping through, buildingeach piece with some code examples.
There is also a repository link forthe full blown version of the code.
And then it also included thecomplete process of how real
live interactions would operate.
So the user would send in a question.
That gets routed to various servicesand the MCP server and comes back with
(08:16):
all the information that it needs.
I really liked this kind of practical andconceptual and actually coding walkthrough
of how this would work in the real world.
I.
Then I will also link the official releaseblog post for Spring AI 1.0 as well.
This one is kind of long, butthe actual end of it is a list of
(08:37):
contributors, which is quite long.
It is well worth the read thoughfor all of the content that's there.
It walks through each of the componentsof an AI application, anything from the
chat models that are available, the memoryconcepts, tools, retrieval augmented
generation, MCP, and so much more.
So If you want an overview of what allSpring AI provides and what it's doing
(09:01):
and how it works, this is an excellentblog post for figuring out what's there.
I found this superinteresting and very helpful.
There were several things that I wantto explore more, and I already better
understand just after reading thisblog post, so I highly recommend it.
If you're just getting started into theAI world and you want an introduction
on what's available in Spring AI, or thedifferent components and modules that
(09:25):
you might need in an AI application,this is a good place to start.
This week has been a highlight with somelearning and progress on Java content
through the object mapping blog, frameworkand non framework application building,
plus work on the Java online courses.
Then the major announcement ofSpring AI 1.0 general availability
release with two helpful blog poststo walk us through what's there
(09:49):
and how to build systems with it.
I will talk to you next week.
Thanks for listening and happy coding.