Welcome to this week in Neo4j where we round up what’s been happening in the world of graph databases in the last 7 days.
This week David Fox explains how his team at Adobe moved from a 48 instance Cassandra cluster to a 3 instance Neo4j one, Emil is interviewed on The New Stack Makers Podcast, Neo4j Launches Commercial Kubernetes Application on GCP Marketplace, and we have the first alpha release of our new Go driver!
Featured Community Member: David Fox
This week’s featured community member is David Fox, Software Engineer at Adobe.
David Fox – This Week’s Featured Community Member
David has been a member of the Neo4j community for many years and presented Connections Through Friends: The Second Degree and Beyond at GraphConnect 2013.
I first came across David in my role in Neo4j’s customer success team while David was working at Snap Interactive (now PeerStream). David has since presented his experiences there in a talk at the Neo4j New York meetup titled Running Neo4j in Production: Tips, Tricks and Optimizations.
David now works for Adobe, and is responsible for the backend infrastructure and performance on Behance – a social network for creatives, serving over 10 million members. We’ll cover more about his experience there below.
On behalf of the Neo4j community, thanks for all your work David!
Moving Adobe Behance’s activity feed from Cassandra → Neo4j
In the first part of the interview David explains how the activity feed feature and some of the limitations they had with their original implementation which was using Cassandra as the underlying storage engine.
He goes on to observe that the full dataset size has been reduced from 50TB when it was stored in Cassandra, down to around 40 GB in Neo4j. They’re also able to power this system using a cluster of 3 Neo4j instances, down from 48 Cassandra instances of equal specs.
As a result of this they ‘ve been able to exponentially decrease the amount of developer-operations staff hours required each month to keep the activity feed running.
Neo4j Launches Commercial Kubernetes Application on GCP Marketplace
This means that users can now easily deploy Neo4j’s native graph database capabilities for Kubernetes directly into their GKE-hosted Kubernetes cluster.
On The New Stack Makers Podcast: Emil Eifrem
They talk about the history of Neo4j from its origins solving a problem in enterprise Content Management, through to the release of the Neo4j Bloom last month, and Emil’s vision of the future of Machine Learning and graphs.
You can listen to the interview below.
RDFS/OWL ontologies → Neo4j, Part 4 of Dating Site, Merging data from optional keys
- In part 4 of Max De Marzi‘s series on building a dating site he continues building out the backend API, adding endpoints to capture the things that users like and hate.
- Lju Lazarevic has written a blog post showing how to importing RDFS/OWL ontologies into Neo4j using the W3C Organizational Ontology as an example dataset. Lju uses a procedure from neosemantics to import the data and then shows how to query the resulting ontology using the Cypher query language and APOC library.
I came across an interesting question (and answer!) on StackOverflow – How to Merge Nodes from JSON Data when Key is optional. The
WITHclause is sometimes unintuitive to new users of Cypher and FrobberOfBits does a great job of explaining how it works.
- Alfred Sawatzky has created a video showing how to use yFiles Neo4j Explorer to render the Neoj4 graph schema.
First alpha of Go Neo4j driver
Based on popular demand our drivers team have been working on a Go driver for Neo4j, and this week released its first alpha version.
You can find instructions for using the driver in the neo4j-go-driver GitHub repository, and if you’ve used any of the other language drivers you will find the same familiar API that you’re used to.
The GA for the Go Driver is planned along with the Neo4j 3.5 release later this year. If you want to learn more you can join the #neo4j-golang channel of the Neo4j users slack.
Creating Nodes and Relationships Dynamically with APOC
Creating nodes and relationships with Cypher is really straightforward. It only gets tricky when you have labels, relationship-types or property-keys that are driven by data and dynamic.
The Cypher planner only works with static tokens and in this video Michael shows how APOC procedures come to the rescue here for creating, merging and updating nodes and relationships with dynamic data coming from user provided strings or lists.
Python Dependency Graph, Fraud Detection with Neo4j, Neo4j OGM Release
- I wrote a blog post showing how to analyse a graph of your Python depencies using centrality algorithms from the Neo4j Graph Algorithms library.
- Joe Depeau presented a webinar showing How to Build a Fraud Detection Solution with Neo4j. Joe shows the value that graphs can add beyond traditional fraud detection methods, shows how Neo4j can fit in a typical architecture, and demonstrates how Neo4j Bloom can be used to explore a fraud dataset.
- Michael Simons released version 3.0.4 of Neo4j OGM. This version has support for version 1.5 of Bolt drivers, compatibility for 3.4 point types, and several bug fixes.
- Jennifer Reif has written a blog post in which she covers the history of data storage, contrasts relational and graph data modeling, and shares some common use cases for graphs.
What’s happening next week in the world of graph databases?
July 25th 2018
Mark Needham, Jesús Barrasa
July 25th 2018
Tweet of the Week
My favourite tweet this week was by Iian Neill:
Some nights #Codex feels like some secret technology from the future that I'm the only one using. Once you get used to unlimited overlapping annotations linked to the @Neo4j graph … you can't go back. The possibilities of standoff properties and the graph seem endless!— Iian Neill (@IianNeill) July 13, 2018
Don’t forget to RT if you liked it too.
That’s all for this week. Have a great weekend!