I decided to find out. Here's my lovely chat with imaginary JEP, the Graph Database. Turned out to be a fine chap, really. Here it goes:
Here's the transcript of our conversation:
RVB: Good morning everyone, my name is Rik, Rik Van Bruggen from Neo4j - and today I am doing a really special episode of the Graphistania podcast series. It's an episode that I got the inspiration for by listening to Everything is Alive, a podcast hosted by RadioTopia. They did some amazing work interviewing some of the most interesting characters ever - and I would love to continue that tradition here today on Graphistania.Subscribing to the podcast is easy: just add the rss feed or add us in iTunes! Hope you'll enjoy it as much as I enjoyed making it!
So for today's episode I have invited JEP to the podcast. And JEP is kinda special to us. JEP is an actual Neo4j database instance - welcome JEP.
JEP: thanks a lot Rik - it's such a pleasure to be here. Although I must admit that I have not listened to any of your other Graphistania episodes…
RVB: You haven't? That's a pity. How come?
JEP: well - you know, I haven't really had time. I'm 24x7 available you know.
RVB: that makes sense. But maybe, JEP, it would make sense for you to introduce yourself to our listeners. Maybe not everyone knows you yet, right?
JEP: sure thing, Rik... So yeah… my name is JEP, and I'm a Neo4j instance. I was named after my founders - Johan, Emil and Peter - who clearly don't have a talent for choosing great names - it's a good thing that they are better at writing software, right?
RVB: yeah, tell me about it. But tell us a little more about you. Who are you, and what's your history, JEP?
JEP: well… it's kind of a long story, right. I mean, I am well into my teenage years in "human years" - but in database years I would say I am already well into my early adulthood. And growing up has been quite an interesting experience, really…
RVB: Really? Tell us more about that…
JEP: well… I was first created by Johan, Emil and Peter on a dark and wintery weekend in Sweden in the early 2000s… These guys had been struggling with Informix on a project for a number of months, and for lack of a better thing to do, they decided to prototype an early version of Neo4j using JAVA's new I/O system…
RVB: is that where the 4 J thing came from?
JEP: yeah...everything was 4 J at the time - it was the equivalent of the hipster man-bun of the early 2000s… So yeah… At that time it was a JAVA library on top of Postgres, if I recall correctly, but hey, the core idea of providing a "Network Engine for Objects" was created. Seems like such a long time ago…
RVB: but tell us more about what you actually DO, JEP… what does your day look like?
JEP: well… it's kind of complicated to summarise it for your listeners, Rik. But the core of what me and my brothers and sisters - the other Neo4j instances out there - do is to try to help the World make sense of data. Kind of a biggie. We do that by storing data in a very particular way - as a graph model. Not a graphical model - but a graph, a NETWORK model. So things connected to other things through explicit relationships - you get it?
RVB: yeah I get it - I've had a few other people explain it to me on the podcast. Thanks for checking...
JEP: So then… once we have the data in a graph model, we allow our users to ask questions. We call them queries. And then, my real job starts…
RVB: oh does it? How does that work, then, JEP?
JEP: well, when I get a query, I first try to find a sensible starting point to dive into the graph - and then I start "traversing" - I start running around the graph looking for information that the users are looking for. I will have a lots of queries like that running in parallel - and all of them serve their results back to the users in a matter of milliseconds. It's really cool to see really...
RVB: but there's one thing I don't understand, JEP - how do these users of yours find you? How do they start using you? How does that work?
JEP: well - that part is kind of interesting. Do you know that Neo4j is actually partly open source, Rik? … Well it is. That means that the "open core" of Neo4j, the Neo4j Community Edition, is actually freely available to everyone… People can just download it, install it, and have a play. Some users just use me for a few minutes, and then try the next thing. They must be getting bored or something? But the really interested users actually usually use one of my brothers and sisters…
RVB: who are they then? Are they something different than that Open Core Community Edition that you just mentioned?
JEP: yeah I think so… because I know for a fact that I am an Enterprise Edition instance - the best you can find… I live together with a bunch of other cluster members on a group of nice beefy servers… 24 cores baby! 256gigs of RAM for each of us! That's a big playground for an instance like me! Woohoo!!
RVB: Oh so you're part of a cluster?
JEP: Yes I am. I really nice one too. Has not skipped a beat since version 3.2. Just got upgraded to 3.5. Sweet as can-dy!
RVB: And so you work at a customer, somewhere?
JEP: Yeah, I do. It's an insurance company, I think. They do all kinds of funky fraud detection and and social network analytics with me. Really cool. Some people call it Artificial Intelligence, AI - but I just call it Graphintelligence. Simple. Nothing artificial about it. Once you get used to working in the graph model - it just makes so much more sense and the new insights just start jumping out at you.
RVB: So: do you like that job, JEP?
JEP: I do. It's actually gotten a lot better. I used be run on premise in the company's own data center - but that just s*cked. They did not know how to keep a modern database like me running - it was just terrible. But last year we moved into our own cloud instances - and it's been so much better since then. No more downtime! Yey!
RVB: But you must have a bad day once in a while?
JEP: Not really. It's smooth sailing, really. We're just a couple of core servers and a handful of read replicas - and we get along great. But I must say that it feels strange sometimes to know that there's a customer that's paying someone for my use… I feel like a pimped prostitute or a mercenary sometimes. Really that's weird - because I don't do it for the money - I just love my job. I love helping people out with their data queries - it's not that I don't like it … I love it… But I guess someone needs to pay for the crazy new features that we have coming in - not to mention the 220 Volt that keep the engines running, right!?
RVB: yeah, true that JEP. But I am sure that Emil and the crew will put the money that you make for them to good use - I bet there's a lot of cool things coming down the road!
JEP: I hope so, Rik - I hope so.
RVB: So, maybe this is a good time to ask you, JEP, how does what you do compare to other databases? Do you have any perspective on that?
JEP: Are you kidding me, Rik? Seriously? Are there still other databases around? What are they still doing?
RVB: there definitely are, JEP. Why are you so surprised?
JEP: well it's just that my data model - the property graph - is SOOO superior compared to other database models. I really expect that in 10y from now, Neo4j instances will be the only database that people want to use. In fact, I don't understand why anyone still uses the others - but they are of course free to do so… People can be so silly, don't you think, Rik?
RVB: well yeah, of course - but so can databases, it seems!
JEP: don't give me that, Rik! The only other databases that I do respect are the KV stores. Mostly because I love the sound of the name - TV / KV … just sounds good…
RVB: Sounds like you don't like other databases, JEP? Why is that?
JEP: Well of course not … because they are clearly inferior, but still get all the credit! Noone wants the shitty neighbour to win the lottery! Other databases just cost too much, require shitloads of hardware, want to keep their users in the dark… I would never want to be a document store or something - really… But hey - I'm cool and Swedish about it. I am in this for the long run. I am sure things will sort themselves out!
RVB: let's talk about something else, JEP… We talked a bit about all the queries that you take care of… and I was just wondering, with all that querying going on, is there something that you would like to do other than that? Any dreams that you would like to have come true?
JEP: Oh yeah, totally. I would actually like to do so many other things. But I have one particular craving that I wanted to ask you about. Would that be ok?
RVB: Of course that would be ok… just ask, JEP!
JEP: There's this one thing that I have heard so much about - and I know they happen after I do my job … and I would really really like to be a part of them for once… Have you ever heard of these things called PowerPoint presentations?
RVB: Yes I have.
JEP: Well I know that the results of my work often get presented in a PowerPoint presentation. So I was wondering … do you think it would be possible for you to show me one of those PowerPoint presentations? What do they look like? Are they nice? Do people like them?
RVB: Well that shouldn't be too hard. Let me quickly Google that. Let's see. … here we go… I think it's the summary of a German researcher that has been using neo4j for diabetes research... look at that… looks pretty amazing… do you want me to browse through it?
JEP: Wow that looks fantastic. Really cool I'll have to spend little bit more time looking at that. Thanks for showing me, Rik!
RVB: My pleasure I hope that was useful - and that you have one more thing that you can take off your bucket list, JEP! Cool huh!
JEP: yeah - really happy about that!
RVB: Well JEP thank you so much for coming online and having this wonderful little chat with me I hope it was useful and that you enjoyed it as well? I certainly did.
JEP: I did, I really did.
RVB: Thanks a lot Jep. See you soon!
All the best