Call To Action

Go Somewhere

Neo4j: the Graph Database

We'll help you to find values in relationships
Have happier data, and even happier users
Be social, recommend better, make sense of data

It is easy trying Neo4j immediately on Heroku.

We're happy to sponsor Heroku Waza. This time we want to entertain you with two interactive exhibits.

  • 1If you tweet about #waza we will infer connections to other people and tags and visualize it in a pretty graph.
  • 2An amazing Zen-Table that is filled with sand and can be drawn on interactively.

Getting Started

Learn about Neo4j

Neo4j is a graph database. Records are called nodes and the connections between records are first-class citizens forming relationships.

Neo4j refers to this model as a Property Graph — nodes and relationships can have arbitrary key-value properties.

Querying is performed by finding patterns in the graph, using the humane Cypher query language. It's like a friendly, expressive version of SQL.

On Heroku

  1. Join Heroku, then prepare your developer environment
  2. Create a new Heroku app, using the Neo4j Add-on:
    // Create the application
    heroku apps:create {app name}
    // Include the Neo4j Add-on
    heroku addons:add neo4j
  3. Pick a Neo4j REST driver (see the sidebar)
  4. Provide the NEO4J_REST_URL environment variable to the driver
  5. Get graphy with your application

Relational to Relationships

Ye Olde Join Table

This you already know

That the "relational" in RDBMS is simply a foreign key, a fairly humble reference to another record. Typically the column will be the same as the primary key in the other table, and the constraint will say something about the connection. To provide more information, use a...

Join table

Buried in the schema of every relational database on the planet, one or more join tables lurk. While the convention adds valuable information about how records relate, queries across multiple joins on large data sets can cause join pain.

Now, consider graph relationships.

Join Table

Graph Relationships

Relationships as first-class citizens

In a graph database like Neo4j, relationships are essential data elements. Down to the bare metal, Neo4j is optimized for managing the relationships between records, resulting in queries that are 1000x faster.

How can it be that much faster?

In a graph traversal, only the local data affects the query speed, and because relationships are materialized as actual structures, finding local data is extremely fast. And, it isn't affected by the growth of the entire data set. What happens to your RDBMS join queries when the data set grows?

Graph Relationships


People tweet all the time. There is the obvious social graph that consists of twitter followers. But much more interesting is the implict graph hidden in between the tweets. Mentions, Retweets and shared Hashtags form interesting relationships between people even if they don't follow each other.

  • Tweet with #waza, you will be highlighted when your tweet comes in
  • Watch the big graph show up on our screens and projectors
  • Check out the Twitter-Graph on your device


An eloquent combination of craftsmanship and electronics creates the unique experience of the Zen coffee-table. Being able to control programmatically which patterns appear in the sand gives it a magical feel. And you can bring it alive just with the drag of a finger onscreen.

  • Have the table draw the lines in the sand that you doodle on your mobile device
  • Watch the Zen Table draw awesome logos and images
  • Program a picture using Javascript, with a few commands you can create pretty geometric figures


blog comments powered by Disqus

Learn more about Neo4j out on the intertubes:

  • Twitter
  • Twitter
  • You Tube
  • Linked In

Contact us directly: