Here’s what we talked about:
Can you tell me a little bit about how you guys use Neo4j?
Paul Jongsma:We use Neo4j primarily to build web solutions, particularly for user-facing web pages but also for the backend, where all the relationships and connections are made in the Neo4j database and presented in webpages.
Why did you guys choose Neo4j? What made it stand out?
Paul: We’ve been building websites since the internet first existed. I still remember using Netscape version 0.9 and being impressed that you could do in-line images. All of this to say that I’ve been in the business for a bit.
Recently, we became involved in a project involving history education, and they had logical questions such as, “Can we have this historical person connected to pages that contain certain locations and events they were involved in?” This sounded very natural, so I was happily coding away in my SQL database until many more historical people and locations were entered and everything became incredibly slow and unresponsive.
Even though what they wanted sounded very logical, it just didn’t translate into the relational database world. So instead of telling them to find someone else, I was eager to find a solution and started doing some research.
Graph databases emerged as the best solution. After trying several other options, I decided to stick with Neo4j because it was very accessible and easy to use, largely because of Cypher, which made me feel at home and be very productive.
What were some of your most interesting or surprising results with using Neo4j? What were some of your best moments?
Paul:Normally when we would talk to our customers about what they wanted to have on their website, and what their site was about, we would have to try and restrict their requests due to the technical restrictions of the RDBMS data model.
But with Neo4j, the famous saying is that you draw a couple of circles and lines between those circles and that’s your data model. That actually comes very close to the reality, and you no longer have to worry about variations in your data model because it’s so easy to change it as you go along.
If you could take everything you know about Neo4j now and go back to your first project, what would you tell yourself to do differently?
Paul:I would tell myself to stop using relational databases. That’s quite obvious. We’re still in the process of transitioning all of our data into Neo4j, which isn’t a real project I can bill for. I’m still doing it in my spare time just to be able to concentrate everything in one logical platform.
Any closing thoughts?
Paul:I really like Neo4j. It’s a nice environment, and there are a couple of architectural changes that would be very nice. For example, having the ability to switch between databases from Cypher – or from any other environment – so you could host multiple projects on one machine. Apart from that it’s pretty good, and with the new version of Neo4j 3.0, there is another route of possible optimizations so I look forward to diving into it.
Want to share about your Neo4j project in a future 5-Minute Interview? Drop us a line at firstname.lastname@example.org
Take the Class