Here’s what we talked about:
Can you tell us a little bit about Spring Data Neo4j?
Luanne Misquitta: Spring Data Neo4j (SDN) allows you to map your domain objects to a graph and focus on your domain model, entities and business logic rather than having to worry about low-level interaction with the graph.
The good thing about Spring Data Neo4j 4.x onwards is that there’s been a design decision to separate the core object-graph mapping (OGM) library from Spring itself. So, in earlier versions, you had to use the Spring framework, or not at all. But now, because we’ve broken those libraries apart, even people that don’t want to use Spring, for a variety of reasons, can use Neo4j OGM, which is the core library, and does all the object-graph mapping for you.
How is Spring Data Neo4j 4.1 different than 4.0?
Luanne: We rewrote Spring Data Neo4j 4.0 from scratch because SDN3 focused on embedded Neo4j. This proved problematic when the Neo4j remote server came about; it never caught up, so the performance suffered. This is why we re-wrote every line of code in SDN4; everything was fresh to support a highly performant object-graph mapper over the wire (over HTTP) and via a Cypher transactional endpoint.
SDN4.1 introduced two more drivers: an embedded driver that allows you to continue working with embedded databases, along with a Bolt driver. These two drivers are really the major difference between SDN versions 3, 4 and 4.1. Now, there are three kinds of drivers available to address any kind of communication that you want.
What first drew you to Neo4j, and to graph databases in general?
Luanne: Originally I didn’t know anything about graphs. I worked in a people management company, and we were trying to model the concept of a person’s profile. This included data points such as internal and external employment history, learnings, certifications, talent and performance — everything. The person was at the center of the data model.
The problem we ran into is that the data we had to describe each person was never the same; there may be some types of data available for one person that wasn’t available for another. We also needed to be able to get insights into the natural teams and structures, and determine who at the organization was a high flight risk. We know they’re going to leave, so what can we do about it? Do we have someone with similar skills who can replace him or her?
These are the types of questions that most HR managers and organizations need to be able to answer in order to efficiently replace vacant positions from internal talent and avoid the cost of hiring from the outside. How do you plan people’s talent, get them up the chain to being a manager, what skills did they need, what sort of vocations are we lacking?
Our database was sitting in an RDBMS, in Oracle to be precise. And we had reached the point where our data didn’t really fit there anymore. At one point, we had a table with with 255 columns, out of which 70% were always
NULL. And when we had weird application logic to display a person’s profile; it was a nightmare.
So we started looking at NoSQL solutions because that was popular about 10 years ago, and we were told to look at column stores because Bigtable was the thing. But, in a happy twist of fate, I performed a Google search and found information on graph databases and realized it was exactly what we needed. And then I found Neo4j, which I loved the moment I looked at it and haven’t looked back since.
And when can we expect Spring Data Neo4j 4.2?
That really depends on the Spring Data release train. Now the OGM, which is the library that powers Spring Data Neo4j, that is a cycle that we control. The good thing is that even though you may not have a formal version of Spring Data 4.2 you can still upgrade the OGM version underneath it and then take advantage of all new features that are in the OGM.
Any other thoughts you’d like to share?
Luanne: We are really glad that we’ve had a good response to Spring Data Neo4j and the OGM library. We’ve met a lot of people who are happy using it. We really want to develop this more and add more features everybody wants to see.
Want to share about your Neo4j project in a future 5-Minute Interview? Drop us a line at firstname.lastname@example.org
Read the Ebook