In this week's episode of simplyblock's Cloud Commute podcast, host Chris Engelbert sits down with Jennifer Reif, a developer advocate at Neo4j. Jennifer dives into the fascinating world of graph databases, explaining how Neo4j stores data as entities and relationships, making it perfect for complex queries involving networks, social structures, supply chains, and more.
In this episode of Cloud Commute, Chris and Jennifer discuss:
- Use cases of Neo4j, including social networks, permission systems, and complex data relationships
- Getting started with Neo4j: Cypher query language, Neo4j Aura, and integration with Kubernetes
- The future of AI and databases: integrating LLMs with databases for improved workflows
Interested to learn more about the cloud infrastructure stack like storage, security, and Kubernetes? Head to our website (www.simplyblock.io/cloud-commute-podcast) for more episodes, and follow us on LinkedIn (www.linkedin.com/company/simplyblock-io). You can also check out the detailed show notes on Youtube (www.youtube.com/watch?v=CdrWQp4Lw5A).
You can find Jennifer Reif on X @JMHReif and Linkedin: /jmhreif.
About simplyblock:
Simplyblock is an intelligent database storage orchestrator for IO-intensive workloads in Kubernetes, including databases and analytics solutions. It uses smart NVMe caching to speed up read I/O latency and queries. A single system connects local NVMe disks, GP3 volumes, and S3 making it easier to handle storage capacity and performance. With the benefits of thin provisioning, storage tiering, and volume pooling, your database workloads get better performance at lower cost without changes to existing AWS infrastructure.
👉 Get started with simplyblock: https://www.simplyblock.io/buy-now
🏪 simplyblock AWS Marketplace: https://aws.amazon.com/marketplace/seller-profile?id=seller-fzdtuccq3edzm
01:00:00
And I always like to give the
01:00:01
example that it took me
01:00:02
learning Cypher in order
01:00:04
to understand what the SQL having
01:00:08
and group by
01:00:09
clause was trying to do.
01:00:15
You're listening to simplyblock's Cloud Commute Podcast,
01:00:17
your weekly 20 minute
01:00:18
podcast about cloud technologies,
01:00:20
Kubernetes, security,
01:00:22
sustainability, and more.
01:00:24
Hello.
01:00:24
Well, welcome back everyone.
01:00:25
Welcome back to the next episode
01:00:26
of simplyblock's
01:00:27
Cloud Commute Podcast.
01:00:29
This week I have another
01:00:31
incredible guest.
01:00:32
I know I say that
01:00:33
every single time.
01:00:34
I, it's, it's just true.
01:00:36
They're all incredible.
01:00:37
And you know that, right?
01:00:38
So, hello Jennifer.
01:00:41
Um, maybe just give us a
01:00:44
quick introduction real quick.
01:00:46
Sure.
01:00:47
My name is Jennifer Reif.
01:00:48
I'm a developer advocate at
01:00:51
Neo4j, focusing on Java
01:00:54
technologies and its ecosystem.
01:00:56
So I cover, cover the gamut
01:00:58
on, yes, anything,
01:01:00
almost anything Java.
01:01:01
I've worked at Neo4j
01:01:04
for the last, well, since 2018,
01:01:07
let me put it that way.
01:01:09
It's been a little bit.
01:01:11
Um, and I do some, show up at
01:01:14
some conferences as well as write
01:01:16
blog posts, do videos, a little
01:01:19
bit of Neo4j's podcast,
01:01:22
graphstuff.fm and code demo
01:01:24
projects and presentations in the
01:01:26
whole, the whole nine yards.
01:01:28
So I am happy to be here to talk
01:01:30
to Christoph and chat a
01:01:32
little bit about technology and
01:01:33
Neo4j and so on.
01:01:35
So.
01:01:36
Awesome.
01:01:36
I think you're actually the first
01:01:37
person who ever said
01:01:38
Christoph on, on the stream.
01:01:40
So now people know how I'm really,
01:01:42
I'm really called.
01:01:45
Chris is fine.
01:01:46
It's, it's so much easier for
01:01:47
the rest of the world, but you
01:01:49
said you're working for Neo4j.
01:01:50
Obviously I know what Neo4j is,
01:01:52
but maybe just give the others a
01:01:54
quick introduction.
01:01:55
What is cool about it?
01:01:56
What is it?
01:01:56
And, you know the spiel.
01:01:58
Sure.
01:02:00
Neo4j is a graph database.
01:02:03
Um, and I guess to start off,
01:02:07
just like any other
01:02:08
database, it stores data.
01:02:10
A lot of people will say, "oh, is
01:02:11
it a layer on top of another
01:02:14
type of database?"
01:02:15
No, it actually is
01:02:16
a storage system.
01:02:17
You store the data rights to disk
01:02:19
and the whole, the
01:02:20
whole gamut there.
01:02:21
Um, but it stores data differently
01:02:24
than, rows, tables,
01:02:28
documents, so on.
01:02:29
It stores data as entities and
01:02:32
then relationships between them.
01:02:34
So you actually write the
01:02:36
relationships to the database.
01:02:37
That makes it really easy to read
01:02:40
those relationships back.
01:02:41
So anything where you have a lot
01:02:43
of complex
01:02:44
relationships or a lot of
01:02:46
relationships and a lot of hops
01:02:47
through different types
01:02:48
of data, a graph database
01:02:50
is going to be optimized and more
01:02:52
performant for
01:02:52
those types of queries.
01:02:54
Right.
01:02:55
Um, so lots of things like
01:02:56
networks or social network
01:02:59
structures, supply
01:03:00
chains, where you have a lot of
01:03:02
depth and hopping
01:03:03
around, even just
01:03:07
fraud detection and
01:03:10
there's a variety of
01:03:11
different use cases, software
01:03:13
dependencies,
01:03:15
lots of other things.
01:03:16
So I've seen it used for kind of
01:03:18
hit or miss just kind of random
01:03:20
things that it's
01:03:21
like, "oh, I would have never
01:03:22
thought to use a graph for that,"
01:03:23
but it works really,
01:03:24
really well, for, for any type
01:03:26
of case where you have
01:03:27
a lot of relationships
01:03:28
and a lot of
01:03:29
connections in your data.
01:03:32
So that's interesting.
01:03:33
I think the weirdest thing that
01:03:34
I've built, and
01:03:36
at the same time,
01:03:38
the most efficient thing was
01:03:40
actually a permission system,
01:03:42
with inheritance,
01:03:43
and roles and permissions and
01:03:44
inheritance between the
01:03:45
different roles, because
01:03:47
you're basically can make a single
01:03:49
like Cypher request
01:03:51
and say, "give me every
01:03:52
permission that is somehow
01:03:56
in the hierarchy or
01:04:00
in the inheritance graph, and
01:04:02
remove everything that
01:04:03
might be overridden"
01:04:05
as, what is the term,
01:04:09
uh, is it out,
01:04:10
um, uh, denied.
01:04:12
That's it.
01:04:13
Yeah.
01:04:13
Blocked or denied.
01:04:14
I like that.
01:04:16
So that was, that was really nice.
01:04:18
And it was so much easier than,
01:04:20
than doing like a
01:04:21
graph, or like a table
01:04:24
tree kind of recursive SQL lookup
01:04:26
on a relational database.
01:04:29
Yeah.
01:04:29
Um, yeah, I think I still
01:04:31
have the code somewhere.
01:04:33
That would be really cool.
01:04:34
You should publish
01:04:35
that somewhere or like, you know,
01:04:36
highlight somewhere.
01:04:37
I can try to find it and,
01:04:39
um, well, let's
01:04:41
see if I, maybe I
01:04:41
hand it to you.
01:04:44
Yeah.
01:04:44
I've seen some geology or
01:04:46
like family tree
01:04:47
type of scenarios.
01:04:48
In just a couple of lines,
01:04:50
it was like, I think, uh,
01:04:52
three types
01:04:54
and four
01:04:55
relationships or something, and
01:04:56
you're done.
01:04:58
I was brilliant.
01:05:00
Yeah.
01:05:01
Anyway.
01:05:02
So you said it's a graph
01:05:05
database and you gave
01:05:06
a couple of
01:05:08
ideas what a graph database
01:05:10
could be used for.
01:05:11
And well, I hinted on why
01:05:15
graph databases might be easier.
01:05:18
Right.
01:05:18
So especially when you do
01:05:20
like topology or
01:05:22
relate any
01:05:25
kind of relation lookups, you
01:05:27
said social
01:05:28
networks, parent or
01:05:32
family trees, anything like that,
01:05:34
where you have relations,
01:05:36
especially like when
01:05:37
you look at European
01:05:39
history, like
01:05:40
between the different
01:05:41
Kings families, and there's a lot
01:05:43
of connections and
01:05:44
relations between
01:05:45
almost all families.
01:05:47
Yeah.
01:05:47
So if you're trying to
01:05:49
understand or to look into
01:05:51
those kinds of things,
01:05:52
graphs are super
01:05:55
helpful and much easier.
01:05:57
But what would you
01:06:00
say is like the biggest
01:06:04
difference from a, from
01:06:05
a typical database, for example,
01:06:06
like a relational
01:06:07
database, except you said that
01:06:10
Neo4j or graph database
01:06:11
store it slightly different.
01:06:13
Yeah.
01:06:13
I'm slightly biased.
01:06:15
So I have a long list of things.
01:06:16
I love a graph database
01:06:18
over other things. But if I had
01:06:20
to narrow it down
01:06:22
to just one, the thing that I find
01:06:24
most impactful is that
01:06:26
you don't need to have
01:06:29
expert knowledge about the data
01:06:31
model in order to pull valuable
01:06:34
data from a graph
01:06:35
database.
01:06:36
So you had mentioned, you
01:06:38
know, you have a few different
01:06:39
types of relationships.
01:06:41
You don't have to know what those
01:06:43
relationships are
01:06:44
going into the graph
01:06:45
database, you say, "hey, look, I
01:06:47
know I have these
01:06:48
entities, find all the ways
01:06:50
they're connected and remove
01:06:53
the connections
01:06:54
that are, you know, the
01:06:55
denials or the denied or blocked
01:06:57
or whatever
01:06:58
credentials or access
01:07:00
paths," and you can filter those
01:07:04
types of relationships out and
01:07:06
with a relational
01:07:08
database, sure,
01:07:09
that's probably possible,
01:07:11
but the amount of work and the
01:07:14
amount of knowledge
01:07:14
you have to have upfront first of
01:07:16
the data model and second of SQL
01:07:18
in order to handle
01:07:19
those very complex filterings and
01:07:22
like sub queries and so
01:07:24
on is a lot higher.
01:07:26
That learning
01:07:27
curve is a lot higher.
01:07:28
Um, so that's the thing that I
01:07:30
love most about graph
01:07:31
databases is the data
01:07:34
model itself is
01:07:38
not required to know it
01:07:39
upfront well, and
01:07:42
then it's naturally very visual.
01:07:44
So it's just easier to navigate
01:07:45
and easier to just
01:07:47
explore without having
01:07:49
this massive learning curve
01:07:50
upfront to know the data.
01:07:53
I love that.
01:07:55
Um, specifically as far as I
01:07:57
remember Neo4j was involved
01:08:00
into a lot of like
01:08:01
analytical use cases, uh, towards
01:08:04
things like the
01:08:05
Panama papers, right?
01:08:06
As far as I remember Panama
01:08:07
papers, like the whole network was
01:08:09
basically put into
01:08:10
Neo4j and then the
01:08:11
journalists started analyzing this
01:08:13
massive graph and how
01:08:15
all those companies worked together.
01:08:17
And that is exactly
01:08:18
what you said, right?
01:08:19
You don't have to understand or
01:08:21
have to know yet how those things
01:08:23
are connected or
01:08:24
is it people, is it companies that
01:08:27
somehow work together
01:08:28
that make the relation?
01:08:30
Um, you figure that out while
01:08:32
you're looking at
01:08:34
the data and while
01:08:34
you're looking at the graph and
01:08:35
trying to
01:08:36
understand what that means.
01:08:38
Yep.
01:08:39
Yeah.
01:08:39
My favorite thing is to just take
01:08:40
a data set that
01:08:41
looks interesting to me.
01:08:43
Dump it into Neo4j and then just
01:08:45
start querying and
01:08:46
see what interesting
01:08:47
things I find from it.
01:08:48
And then that's what I end up
01:08:49
focusing on and playing around
01:08:51
with where I feel like
01:08:52
a relational database,
01:08:53
it's almost the opposite.
01:08:55
Um, you have to really kind of
01:08:56
figure out and look at the data
01:08:57
and the spreadsheets
01:08:59
or whatever, you know, data format
01:09:00
you have and figure
01:09:01
out, "okay, what does the
01:09:02
structure look like?
01:09:03
How can I make the connections
01:09:04
from one hop to the
01:09:05
next table and so on?"
01:09:07
And a graph is a little
01:09:09
bit of the reverse there.
01:09:11
Yeah.
01:09:11
Well, I'm not sure it's about a
01:09:14
general graph database
01:09:15
thing or is that very
01:09:17
specific to Neo4j because you
01:09:19
don't necessarily need a schema.
01:09:22
Yeah.
01:09:22
I know there are some other graph
01:09:24
databases that
01:09:25
kind of have that
01:09:27
optional schema, schemaless,
01:09:29
schema free, however
01:09:30
you want to term it.
01:09:30
Right.
01:09:31
And Neo4j is not the
01:09:34
only one in that category.
01:09:35
But I feel like just
01:09:39
the length of time
01:09:40
that Neo4j has been around
01:09:42
that, you know, we kind of have
01:09:44
like a leg up on a
01:09:46
lot of the other
01:09:48
graph databases, so those that,
01:09:49
that do provide that capability.
01:09:51
Um, it's just a
01:09:53
really nice feature.
01:09:55
Right.
01:09:56
Yeah.
01:09:56
I'm asking because I
01:09:58
think for relational databases
01:10:02
one of the critics or points that
01:10:06
people always talked
01:10:07
about and the whole like
01:10:09
NoSQL thing where it came from
01:10:12
was like, you
01:10:13
don't want the schema.
01:10:14
You want this kind of schemaless,
01:10:16
you have an
01:10:17
optional schema and if the
01:10:19
schema can evolve over time, but
01:10:21
with SQL database,
01:10:22
or at least relational
01:10:22
database, not necessarily SQL, but
01:10:24
relational database,
01:10:25
you have to come up
01:10:26
with like relational
01:10:27
model upfront and define it.
01:10:30
Um, and I think that is where a
01:10:32
lot of like the
01:10:33
problems come when you have an
01:10:35
unknown dataset and a very complex
01:10:37
dataset, if it
01:10:39
evolves over time, it's
01:10:40
probably fine, but when you get
01:10:41
something it's probably much
01:10:45
more complicated.
01:10:47
Yeah.
01:10:49
So as a developer, I mean,
01:10:51
I'm coming from a
01:10:52
relational world.
01:10:53
Um, so I'm a Postgres
01:10:56
developer, but I understand I may
01:10:59
need a graph database
01:11:00
like Neo4j.
01:11:01
So how would I get
01:11:02
started with that?
01:11:04
Well, one of the best ways we have
01:11:06
currently is our
01:11:07
database as a service,
01:11:09
um, called Aura, Neo4j Aura.
01:11:12
Um, and we have free instances.
01:11:14
So we have, you know, different
01:11:15
tiers, of course, uh, we have a
01:11:17
free tier and then
01:11:18
kind of your paid tiers above
01:11:20
that, depending on
01:11:20
your, on your needs there.
01:11:21
But the free tier is a really
01:11:23
great place to start.
01:11:24
Um, there's lots of tools
01:11:27
surrounding that free tier.
01:11:28
So they have like a data importer
01:11:30
tool where you can
01:11:31
dump, you can load up
01:11:33
like PDFs or, or CSVs or, um, some
01:11:36
other different
01:11:37
types of data and it will
01:11:39
kind of help you get
01:11:40
that data into a graph.
01:11:41
So you don't have to have that
01:11:42
knowledge upfront.
01:11:44
Um, and then you can kind of
01:11:45
query or play around with
01:11:48
our visualization
01:11:50
tool called Bloom, and it kind
01:11:52
of is a natural
01:11:54
language query interface.
01:11:56
So you don't have to know
01:11:57
a lot of Cypher upfront.
01:11:59
Um, even the Cypher portion
01:12:01
of it, there's guides that
01:12:02
kind of walk you
01:12:02
through, and so it's just a, we
01:12:05
try our best to have a
01:12:07
very low barrier to
01:12:08
entry pathway there for
01:12:10
people to learn.
01:12:13
I think the... You mentioned
01:12:15
Cypher, the thing that makes
01:12:18
Cypher from my
01:12:19
perspective, so much better than
01:12:20
the other graph
01:12:21
languages is that it
01:12:23
actually looks like ASCII art.
01:12:25
It looks beautiful.
01:12:27
You look at the query and at some,
01:12:29
if you go a little bit
01:12:30
deeper and use some
01:12:31
of more complex constructs, it's a
01:12:34
little bit more complicated to
01:12:36
understand if you
01:12:36
don't know how it works, but like
01:12:39
a standard graph
01:12:40
query over multiple
01:12:42
nodes and relationships, it, you
01:12:45
look at that and it's an arrow
01:12:47
telling you, "oh,
01:12:48
here's a node,
01:12:49
here's the relationship,
01:12:50
and that's what I expect,
01:12:51
and that is how many you
01:12:53
can have between those."
01:12:54
I just love it.
01:12:56
Whoever came up with Cypher.
01:12:57
Thank you.
01:12:58
Thank you for the love of God.
01:13:01
Yeah.
01:13:01
It's a super
01:13:03
approachable query language.
01:13:06
I feel like I had learned
01:13:07
several years of SQL
01:13:08
before I even knew about
01:13:10
Cypher, um, and when I came over
01:13:13
to the
01:13:14
light side, if you will,
01:13:16
at Neo4j, um, and started
01:13:18
exploring Cypher, there were
01:13:19
several things that it's like,
01:13:21
"why in the world isn't everybody,
01:13:22
you know, using
01:13:23
something like this?"
01:13:24
Because it's very easy
01:13:27
to read, very easy to construct,
01:13:29
at least kind of
01:13:30
the general starting
01:13:32
structures, right?
01:13:33
Um, there's way more
01:13:34
complex things you can do with it.
01:13:36
And there's still lots of things I
01:13:37
look at it and go,
01:13:38
okay, "how do I do
01:13:39
this pattern, you know,
01:13:40
construction and manipulation?"
01:13:42
Um, because
01:13:42
patterns are very complex.
01:13:44
Um, but yeah, just at the
01:13:46
outset, it's a much more
01:13:48
approachable language.
01:13:50
I feel like and has some
01:13:51
really cool fun
01:13:52
things to do with it.
01:13:54
And I always like to give the
01:13:55
example that it took me
01:13:57
learning Cypher in order
01:13:58
to understand what the SQL having
01:14:02
and group by
01:14:03
clause was trying to do.
01:14:05
Um, it was just way more apparent
01:14:07
in Cypher than in SQL.
01:14:13
I agree.
01:14:14
And I think, and that is
01:14:15
where a graph
01:14:16
database comes in in general,
01:14:18
as I said earlier, in SQL,
01:14:20
when you have those like
01:14:22
multi hop relationships,
01:14:23
you end up doing something like
01:14:26
this weird recursive SQL.
01:14:28
It works, but it's never
01:14:30
going to be nice.
01:14:31
It's it's a recursive,
01:14:33
common table
01:14:35
expression, with the
01:14:37
union and a join and I have to
01:14:41
look it up every
01:14:42
single time I have.
01:14:42
I've used it so many times.
01:14:44
I always get like 95%
01:14:46
to where I want to be.
01:14:48
And then it just doesn't
01:14:50
work the way I expected.
01:14:51
And I have to look it up and
01:14:52
I probably
01:14:54
made some mistake
01:14:55
on the join type or
01:14:57
on the joint clause.
01:14:59
And with Neo4j or in
01:15:01
general with graph
01:15:02
database and specifically
01:15:03
Cypher, it is so much easier to
01:15:06
model that stuff,
01:15:07
even when you use a
01:15:08
merge or, or something,
01:15:09
it's still way easier.
01:15:11
Yeah.
01:15:11
And for those of you who are not
01:15:14
familiar with
01:15:15
Cypher or thinking
01:15:16
that this is a Neo4j thing.
01:15:18
Um, first of all, we have
01:15:19
OpenCypher, which is a
01:15:22
completely open source.
01:15:23
We open sourced it, I believe back
01:15:24
in 2015, but just
01:15:26
this year, Neo4j
01:15:29
and several other graph database
01:15:30
vendors all got
01:15:31
together and came up with
01:15:33
the ISO GQL standard, "Geequel
01:15:37
standard", that was released, I
01:15:38
think like a month,
01:15:39
month and a half ago now.
01:15:41
Um, and so there is an official.
01:15:43
Graph query language standard now
01:15:45
that Cypher has
01:15:47
poured a lot into that as
01:15:49
well.
01:15:49
Um, there's a lot of things that
01:15:50
have, have come over
01:15:51
from Cypher as well as
01:15:53
some other graph
01:15:53
query languages too.
01:15:55
So it will be an official, like
01:15:57
unified standard.
01:15:59
Of course, whenever, when
01:16:00
everybody can kind
01:16:00
of get to that.
01:16:02
An ISO standard.
01:16:04
Yep.
01:16:04
Wow.
01:16:05
I did not expect that
01:16:06
to see in my lifetime.
01:16:08
That is incredible.
01:16:10
It's been several
01:16:10
years in the making.
01:16:11
And Neo4j and all the other graph
01:16:13
database vendors
01:16:14
have been hard at work
01:16:15
getting that all together, but
01:16:16
yeah, it all got
01:16:17
approved and everything.
01:16:18
Just recently.
01:16:20
So how does it work from
01:16:22
a programming
01:16:22
language perspective?
01:16:24
Um, I know that Neo4j has a
01:16:26
lot of drivers,
01:16:27
obviously it's not a SQL
01:16:29
interface, so you need something
01:16:30
different than for
01:16:31
example, in Java JDBC or in
01:16:33
Go, the scan interface.
01:16:35
Um, but I think there's drivers
01:16:38
for almost every language I've
01:16:42
ever considered.
01:16:43
Yeah.
01:16:44
Um, we provide official drivers
01:16:47
for like the bulk of
01:16:48
your core languages,
01:16:50
and then there's community
01:16:51
drivers that are
01:16:53
very well supported, very
01:16:54
well maintained by partners
01:16:56
or communities or so
01:16:57
on for several
01:16:59
other languages, and then we
01:17:01
also do have like a
01:17:02
JDBC driver and
01:17:04
other things too, as well as
01:17:05
integrations to major frameworks.
01:17:07
So like our Spring Data in Neo4j
01:17:09
integration has
01:17:10
been around forever.
01:17:11
Um, and
01:17:14
several others as well.
01:17:15
And of course, you know, we have
01:17:15
like the, the big
01:17:16
GenAI ones now. your
01:17:18
lang chains, your
01:17:19
llama index, and so on too.
01:17:21
So, basically anything you
01:17:23
want to integrate,
01:17:24
with or around
01:17:26
Neo4j has some kind of connector
01:17:28
integration or driver or something
01:17:30
to do with it.
01:17:33
All right.
01:17:33
Cool.
01:17:34
Um, you already mentioned
01:17:36
Neo4j Aura.
01:17:37
Um, and as far as I know,
01:17:41
we're a cloud podcast,
01:17:42
but we're also Kubernetes
01:17:43
podcast, as far as I know Neo4j
01:17:44
Aura internally uses
01:17:46
Kubernetes, right?
01:17:47
Yes.
01:17:48
As far as I know.
01:17:48
Yep.
01:17:49
Kubernetes I the thing.
01:17:51
Okay.
01:17:51
Yep.
01:17:51
So we're, we're probably on the
01:17:53
same level of understand.
01:17:55
Yeah, there may be some other
01:17:56
things they do as well,
01:17:57
but yes, we run
01:17:59
Kubernetes and we have a
01:18:00
very good integration and
01:18:02
partnership there.
01:18:04
Okay.
01:18:04
So that means I can also use
01:18:06
Neo4j on
01:18:07
Kubernetes outside of Aura.
01:18:09
Yeah.
01:18:10
The thing that, at least I
01:18:12
didn't realize and
01:18:13
still like, until I started
01:18:14
digging in just a little bit, is
01:18:15
running a database on
01:18:17
Kubernetes is not a simple
01:18:20
like spin up X database.
01:18:23
Um, there's a lot of, you know, because...
01:18:25
If you don't care for
01:18:26
persistence, yes.
01:18:29
Right.
01:18:30
Um Kubernetes is very
01:18:33
customized because typically
01:18:35
you're dealing with
01:18:36
enterprise systems and you need
01:18:37
to mess or
01:18:38
customize with individual
01:18:40
components or pieces.
01:18:41
So running Neo4j requires
01:18:45
about four or five different
01:18:46
components that
01:18:48
technically run or would run
01:18:50
separately on Kubernetes.
01:18:52
And so, if you've ever heard
01:18:53
of Helm and Helm
01:18:55
Charts, that's the
01:18:57
easiest way to basically just
01:18:59
outlines, you know, these are the
01:19:00
services, the pieces
01:19:01
that I need in order to run Neo4j,
01:19:03
spin all these up together and
01:19:05
manage them this
01:19:06
way and
01:19:07
replicate them this way.
01:19:09
Um, and so it's actually pretty
01:19:10
easy to get up and
01:19:11
running with the Neo4j
01:19:12
provided managed
01:19:14
supported Helm chart.
01:19:17
Interesting.
01:19:18
So the reason I'm saying
01:19:20
interesting is
01:19:21
because everyone these
01:19:23
days talks about Kubernetes
01:19:24
Operators and "we have the Operator
01:19:27
to set it up for you"
01:19:28
and you say "no
01:19:28
use the Helm chart."
01:19:29
And it's like,
01:19:32
it's so refreshing.
01:19:33
I haven't heard that in a while.
01:19:35
I think the reason is that
01:19:37
Operators give you a
01:19:38
lot more like operational...
01:19:41
Well, you can react at
01:19:45
runtime to certain situations
01:19:47
where the
01:19:49
Helm chart is basically just be
01:19:50
the installation.
01:19:51
I think that is the reason why a
01:19:52
lot of people use or
01:19:54
move towards the Operator.
01:19:56
Um, but that's just my guess.
01:20:01
Um, maybe it's just like cool to
01:20:03
have an Operator these days.
01:20:05
The latest thing.
01:20:09
Yeah.
01:20:09
Um, so let me see.
01:20:11
We talked about developers,
01:20:13
we talked about the
01:20:14
programming languages,
01:20:16
we know you can
01:20:17
run it on Kubernetes.
01:20:18
Um, make sure you have a
01:20:20
persistent volume if
01:20:21
you run a database.
01:20:22
We talked about that.
01:20:24
Yep.
01:20:25
And if you need a persistent
01:20:26
volume provider, I
01:20:28
heard that simplyblock
01:20:30
might have something for you.
01:20:32
Um, but there's
01:20:33
a lot of others as well.
01:20:34
Um, actually just yesterday,
01:20:37
or on the
01:20:40
weekend, I started
01:20:42
a small website where you can
01:20:44
look for all the
01:20:45
different CSI providers.
01:20:46
Basically the volume
01:20:48
providers that can be
01:20:50
plugged in into
01:20:51
Kubernetes everything that I know
01:20:53
and found, and
01:20:55
I split them by
01:20:56
features and you can search.
01:20:58
So, if you're in the
01:21:00
search for a CSI
01:21:01
provider, storageclass.info
01:21:03
is probably what
01:21:04
you want to look into.
01:21:05
If you find something
01:21:07
that is wrong, feel free
01:21:08
to send a pull request.
01:21:09
It's GitHub pages.
01:21:11
Just like
01:21:14
as a side note. Okay,
01:21:17
because we're
01:21:18
pretty much out of time.
01:21:20
Um, what do you think is the next
01:21:23
big thing in cloud,
01:21:25
in graph database,
01:21:26
in databases in general, in AI,
01:21:30
feel free to name two
01:21:32
of three things as well.
01:21:34
Yeah.
01:21:34
Well, I think, you know, AI is
01:21:36
kind of or it's kind of the big
01:21:40
thing right now,
01:21:42
but I think we'll start seeing
01:21:43
that not
01:21:45
necessarily taper off, but we'll
01:21:47
start seeing that integrate into,
01:21:49
kind of just our
01:21:52
standard day to day,
01:21:53
rather than that, I think being
01:21:54
the focus for everything.
01:21:57
Um, I think we'll kind of see, you
01:21:59
know, us not go
01:22:01
back to, but
01:22:03
kind of modify what was our
01:22:05
workflow to integrate
01:22:07
LLMs and GenAI stuff into,
01:22:09
into our day to day things.
01:22:11
Um, and so it will become just a
01:22:13
piece of the
01:22:14
deployment puzzle or, you
01:22:16
know, building a puzzle or
01:22:18
application puzzle, whatever it is.
01:22:20
Um, and so I think that will kind
01:22:22
of get standardized
01:22:23
a little bit better.
01:22:24
We'll kind of figure out where
01:22:25
the super useful
01:22:27
applications are and the
01:22:29
highly critical and impactful
01:22:31
workflows that we need to use it.
01:22:33
Um, and so I think databases
01:22:36
are going to be a
01:22:37
huge component of that.
01:22:38
Uh, whether it's, you know, graph
01:22:40
or, or something
01:22:40
else entirely we're
01:22:43
seeing this shift from,
01:22:45
"okay, use LLM for
01:22:46
everything," realizing that
01:22:48
LLM has some limitations, right.
01:22:51
And some, and some weaknesses, but
01:22:53
I think those are weaknesses and
01:22:55
limitations that databases can
01:22:57
really help mitigate.
01:22:59
They're not going to completely
01:22:59
solve them, but they
01:23:00
can help mitigate that.
01:23:02
Um, because we have lots of good
01:23:04
data in our
01:23:05
data structures already.
01:23:06
Um, and so pairing the two, I
01:23:08
think together, this
01:23:09
is where you see that
01:23:10
retrieval, augmented generation or
01:23:12
RAG concept
01:23:14
pairing the database with
01:23:15
an LLM I think is going to
01:23:17
continue to improve
01:23:19
that story together.
01:23:21
Uh, true.
01:23:23
Um, you said how to use it
01:23:26
best or where to use it.
01:23:28
The, I mean, right now
01:23:31
there's this meme
01:23:31
going around, like,
01:23:34
"I want my LLM to do my dishes and,
01:23:37
I don't know whatever."
01:23:39
Well, so it was,
01:23:41
it was differently.
01:23:42
"I don't want my AI
01:23:44
to do art and whatever.
01:23:47
I wanted to do it, but dishes,
01:23:50
so I can do the art."
01:23:51
Yeah.
01:23:52
I want to mitigate the low or
01:23:53
delegate the low
01:23:54
impact things to the LLM.
01:23:56
Exactly.
01:23:58
Um, I don't, unfortunately I can't
01:24:00
remember exactly
01:24:01
what it was right now.
01:24:03
Um, but if I find it, I'll
01:24:04
put it in a show notes.
01:24:05
Um, I read that and I was like,
01:24:07
yes, that is exactly it.
01:24:08
Why do we give the complicated
01:24:10
tasks or the stuff that
01:24:12
we love to do to an AI
01:24:14
instead of trying to offload the
01:24:17
stuff we really don't like?
01:24:19
Yeah.
01:24:19
Um, a good example of that would
01:24:21
probably be writing the
01:24:23
initial documentation for stuff.
01:24:25
Um, looking at the source code,
01:24:26
at the comments and
01:24:28
coming up with an
01:24:29
initial draft for the
01:24:30
documentation of that, whatever.
01:24:32
Um, I mean, where most of us are
01:24:35
engineers and
01:24:35
engineers love one thing,
01:24:37
which is writing code, but
01:24:39
they hate the
01:24:40
other thing, which is, well,
01:24:42
love hate the other thing, which
01:24:43
is documentation.
01:24:45
Yeah.
01:24:45
Right.
01:24:45
Um, so maybe, maybe that is
01:24:48
something where we
01:24:48
should look into and figure
01:24:50
out if maybe
01:24:51
it helps us that way.
01:24:53
All right.
01:24:54
Um, cool.
01:24:55
Yeah.
01:24:56
Um, that was a pleasure.
01:24:58
Thank you very
01:24:58
much for being here.
01:24:59
Thank you so much for having me.
01:25:01
Um, my pleasure.
01:25:04
Yes.
01:25:04
And for the audience,
01:25:06
Jennifer prepared a demo
01:25:09
which unfortunately
01:25:10
doesn't work for an audio podcast,
01:25:12
but we'll put it
01:25:13
in the show notes.
01:25:14
It will show you exactly like how
01:25:15
you can set up a Neo4j on
01:25:18
Kubernetes yourself.
01:25:20
Um, and we may
01:25:22
actually do a recording.
01:25:24
Um, so I can put that as well.
01:25:26
Uh, we'll
01:25:26
see. Maybe not yet.
01:25:28
Maybe it's somewhere
01:25:29
in the near future.
01:25:30
Um, like a plan.
01:25:32
Yeah.
01:25:32
I know, I know.
01:25:34
Sometimes I have plans,
01:25:36
not a lot of times, but sometimes.
01:25:38
Whether they actually get
01:25:39
implemented, you know, who knows.
01:25:42
Exactly.
01:25:43
You can always have good ideas.
01:25:46
And there's plenty of those, not
01:25:47
all of them are
01:25:48
getting implemented.
01:25:51
All right.
01:25:51
Yeah.
01:25:51
Uh, as I said,
01:25:52
thank you very much.
01:25:53
Uh, it was a pleasure.
01:25:54
Uh, it was good to talk to you
01:25:55
after two years,
01:25:58
three years again.
01:26:00
Um, yeah, something like that.
01:26:01
Yeah.
01:26:01
Time just flies.
01:26:04
Um, hopefully we'll connect in
01:26:05
person at a conference sometime in
01:26:07
the future again.
01:26:08
I hope so.
01:26:10
I hope so.
01:26:11
Um, I mean there is a lot of
01:26:14
database conferences, a lot of Java
01:26:16
conferences, so there's a good
01:26:18
chance, I guess.
01:26:19
Yeah.
01:26:21
All right.
01:26:21
And for the audience,
01:26:22
thank you very much
01:26:23
for being here again.
01:26:24
Uh, see you all next week.
01:26:26
Uh, we'll be next
01:26:27
episode and the next guest.
01:26:29
Thank you very
01:26:29
much for being here.
01:26:30
The cloud commute podcast is sponsored by
01:26:32
simplyblock your own elastic
01:26:33
block storage engine for the cloud.
01:26:35
Get higher IOPS and low predictable
01:26:37
latency while bringing down your
01:26:38
total cost of ownership.
01:26:40
www.simplyblock.io

