This Week in Neo4j – Moving Adobe Behance from Cassandra to Neo4j, New Go Driver, Emil on The New Stack Makers Podcast

Developer Relations Engineer
5 min read
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 opens in new tabDavid 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 opens in new tabConnections 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 opens in new tabSnap Interactive (now PeerStream). David has since presented his experiences there in a talk at the Neo4j New York meetup titled opens in new tabRunning Neo4j in Production: Tips, Tricks and Optimizations.
David now works for Adobe, and is responsible for the backend infrastructure and performance on opens in new tabBehance – a social network for creatives, serving over 10 million members. We’ll cover more about his experience there below.
David also built opens in new tabdevRant – a community especially crafted with the wants and needs of developers in mind – and opens in new tabwrote about his experience using Neo4j as part of that application.
On behalf of the Neo4j community, thanks for all your work David!
Moving Adobe Behance’s activity feed from Cassandra → Neo4j
As mentioned above, David was opens in new tabinterviewed by Prof. Roberto V. Zicari, about his experience building a new implementation of Behance’s opens in new tabactivity feed feature.
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
On Wednesday opens in new tabDavid Allen announced the opens in new tabrelease of the Neo4j Graph Platform within a commercial Kubernetes application to all users of the newly renamed opens in new tabGoogle Cloud Platform 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
This week opens in new tabEmil Eifrem, Neo4j’s CEO, was opens in new tabinterviewed on The New Stack Makers Podcast.
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 opens in new tabpart 4 of opens in new tabMax 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.
- opens in new tabLju 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 opens in new tabneosemantics to import the data and then shows how to query the resulting ontology using the Cypher query language and opens in new tabAPOC library.
-
I came across an interesting question (and answer!) on StackOverflow – opens in new tabHow to Merge Nodes from JSON Data when Key is optional. The
WITH
clause is sometimes unintuitive to new users of Cypher and opens in new tabFrobberOfBits does a great job of explaining how it works. - Alfred Sawatzky has opens in new tabcreated a video showing how to use opens in new tabyFiles 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 opens in new tabreleased its first alpha version.
You can find instructions for using the driver in the opens in new tabneo4j-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 opens in new tabNeo4j 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 opens in new tabMichael 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 opens in new taba blog post showing how to analyse a graph of your Python depencies using centrality algorithms from the Neo4j Graph Algorithms library.
- opens in new tabJoe Depeau presented a webinar showing opens in new tabHow to Build a Fraud Detection Solution with Neo4j. Joe shows the value that graphs can add beyond traditional opens in new tabfraud detection methods, shows how Neo4j can fit in a typical architecture, and demonstrates how opens in new tabNeo4j Bloom can be used to explore a fraud dataset.
- Michael Simons opens in new tabreleased 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.
- opens in new tabJennifer Reif has written opens in new taba 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.
Next Week
What’s happening next week in the world of graph databases?
Date | Title | Group | Speaker |
---|---|---|---|
July 25th 2018 |
opens in new tabNeo4j Quick Graphs: Extracting Taxonomies, Strava, Wikipedia, Python Dependencies |
Mark Needham, opens in new tabJesús Barrasa |
|
July 25th 2018 |
opens in new tabQuerying Open Civic Data Using Cypher & Neo4j |
Tweet of the Week
My favourite tweet this week was by opens in new tabIian 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!
Cheers, Mark