This Week in Neo4j – Data Journalism NYPD, Django Admin, Visualization Talks, CEO Podcast, Write Performance, Java GraphQL

Hello, everyone!

Time really flies! It felt like only yesterday I was putting together last week’s twin4j.

I encourage you to share both the newsletter and blog with colleagues and friends who may also find it helpful. You can point them to the page with past issues and the sign-up form. And also send us your feedback, either via Twitter or Discord. Please let us know what you like or dislike about twin4j and what you would love to see more of.

I’m also really excited to announce that we upgraded Neo4j Sandbox to Neo4j 4.3.2, Graph Data Science 1.6.2, Bloom 1.7.0, and the most recent versions of APOC and neosemantics.

Our featured community member is Charles Chen, longtime Neo4j user who shared his story this week. We also dive into the use of graphs in journalistic research like the NYC police misconduct investigation and listen to Emil and Rik in their Graphistania Podcast summer interview. Then Stu Moore introduces write performance improvements for relationship updates.

Django neomodel just got enabled to render admin forms for your data types, which is pretty cool, and we look at all the amazingly visual talks of the Visualization Track of NODES 2021.

And Michael Simons takes us through an super interesting journey of GraphQL backends in Java.

My favorite Tweet this week is from Will Lyon looking at forest fire data.

Have a great weekend and enjoy this collection of amazing content.


This week’s featured community member is Charles Chen.

Charles Chen - This Week’s Featured Community Member

Charles Chen – This Week’s Featured Community Member

Charles used the AWS database selection flowchart that made the rounds on Twitter this week to write about his journey with graph databases.

Charles is the founder of Zytonomy, a company that tracks skill acquisition and identifies gaps in training using ML and graphs to surface operational knowledge. Previously he worked in life sciences on clinical trial applications, where he started to utilize the value of graphs with Neo4j and even contributed with his team to the .Net neo4jclient.

Charles is definitely in love with Cypher, a sentiment I very much share. The readable pattern-based approach to reading and writing graph data is unparalleled.

Thanks a lot Charles for sharing your perspective. We hope it inspires many others to give graph databases a try.

Graphs4Good: Insights into Police Misconduct with Graphs


Even difficult social issues can show as patterns in data. Journalist George Joseph of the Gothamist published a piece entitled “Mapping the Clusters of NYPD Officers Repeatedly Accused of Misconduct”. Together with independent data journalist EJ Fox, Joseph detailed how controversial police conduct is often a group behavior. The article presented an explorable visualization and map of officers tied to complaints since 2010.

What’s especially interesting is that EJ Fox used Neo4j – and particularly the graph data science capabilities (Eigenvector Centrality) – to analyze the data and determine central figures and their relationships. This is a really important application of the technology for investigative journalism.

Graphistania Podcast: Summer Interview with Emil

graphistania emil

After six months, Rik invited Emil back to talk about the human and industry aspects of the pandemic, made jokes, discussed all the developments at Neo4j –including NODES, the funding, company growth, and of course the trillion graph demo. They also spoke about the convergence of the database market and what the future holds.

Make sure to give it a listen or watch the video recording.

Django Admin for NeoModel

django admin

Cristina Escalante and Allison Patricio worked on adding Django Admin functionality for django_neomodel. Just by registering your model types you can enjoy automatic CRUD forms and lists in your admin backend, all backed by your Neo4j database. If you’re using Neo4j from Python using Neomodel or Django, please check it out.

NODES 2021 Videos Visualization Track

track visualization

Graph visualization has always been a hot topic. We get a lot of questions on how to render graphs interactively.

That’s why it was really cool we had a full track of visualization topics at NODES 2021. As I moderated the track, I was privy to watching most of them, and you can even spot me in the Q&A Panels.

Tim from Cylynx started the day demoing the visualization and import features of their Motif tool. Then Neo4j’s Anurag presented the new features in Neo4j Bloom, followed by Katarina from Cambridge Intelligence exploring the life of a twitter troll (Neo4j Sandbox) using really impressive timeseries, heatmap, and other visualization components from Kronograph and ReGraph.

Research assistant Julian from Berlin walked through the relationships between company bosses and politicians of the biggest German firms. A deep dive into Machine Learning with Dataiku and Linkurious for Fraud Detection was presented by Jean.

Close to my heart was a demo by Srivathsava from Chowbus, who showed an DSL for representing Microservice architectures, which was then rendered to Cypher queries to be executed. Mike and Peter from Menome took us into the real world and modeled and rendered connected geo-physical data as a knowledge graph.

And finally, James from Aviar used Unreal Engine to render graphs in 3D for VR applications. The track was closed by Arthur, who visually explored the online gaming sector as a graph.

Neo4j, GraphQL, and Java

neo4j graphql java

Michael Simons, team member of the Neo4j Spring Data Neo4j team, took a deep dive into GraphQL for Java Backend Applications.

He covers neo4j-graphql-java, a translator library to Cypher, using the Cypher-DSL. That Cypher query can then be executed with the Neo4j Java Driver and returned by any JVM web server as JSON to the API client.

Next is using Spring Data as a back-end for your GraphQL API, using Netflix’ DGS library that maps resolvers directly to Spring Data Neo4j’s repository finders or to other sources, like REST APIs.

And finally a Quarkus based app that utilizes the SmallRye GraphQL and an incremental approach of building up a Cypher query based on the selection set of the GraphQL query with Cypher-DSL.

He closes the article with a shout-out to query-complexity limitation with MaxQueryComplexityInstrumentation.

I thoroughly enjoyed reading the article, Michael. Thank you also for providing all the code and running applications.

Relationship Chain Locks – Don’t Block the Rock

relationship locks rock

Core database PM Stuart Moore takes a fun celebrity to demonstrate the impressive write improvement in Neo4j 4.3, which uses more fine-grained locks for updating relationships. Those changes allow better concurrent writes, especially on central nodes with a lot of relationships.

Tweet of the Week

We’re all affected more and more by climate change, so Will Lyon started to look into wildfire data.

Don’t forget to RT if you liked it too!