Category: Developer

Graph Story is now all-Enterprise, all the time

Today we have some exciting news!


All Graph Story Neo4j plans now offer Neo4j Enterprise Edition.

That means every plan we offer from here on will include Neo4j Enterprise, and everything that goes along with that:

  • Automatic daily, weekly, and monthly backups
  • Hot backups and hot exports
  • Clustered Replication in Multi-Server Setups
  • Enterprise Lock Manager
  • Cache Sharding
  • Cypher Query Tracing
  • Property Existence Constraints

With this change comes a new pricing model for our plans. As a Neo4j Solution Partner, Graph Story will include the price of the Neo4j Enterprise license as part of every plan. Pricing for that license varies based on the size of the company. Under this tiered pricing, startups and smaller companies receive significant discounts, and larger companies can get the dedicated support options they need.

Here are our three pricing tiers:

Level Startup Growth Premier
Monitoring 24×7 24×7 24×7
Guaranteed resp time 24hr1 12hr1 15m1
Named Contacts 1 3 5
Support Chat & Email Phone, Chat, & Email Dedicated
For companies with 1-20 employees
Up to US$3M annual revenue
21-50 employees
Up to US$3M annual revenue
Over 50 employees
Over to US$3M annual revenue
Availability Simple application required2 Immediate deployment Immediate deployment

View our new pricing now

Within 6 months, we will transition all of our existing customers on Community Edition plans to Enterprise Edition plans. We will have more information about that process in the very near future.

We are committed to helping our new and existing customers be successful, no matter their size or needs. If you have any questions or concerns, please let us know via email at or contact us using web chat.

Ed Finkler
Graph Story

1: While these are guaranteed times, our median first response time in the last 90 days is 5 minutes (as of Tuesday; November 29, 2016)

2: Startup pricing requires that you send us an email with information about your company’s qualifications, and what plan you’re interested in. More info

Graph Story Newsletter: An Elephant Never Forgets. Mostly 🐘

Remember those ads for Elephant Memory Systems floppy disks, with the tag line “Elephant never forgets?” Well I’m no elephant, because I was so busy rocking out at DevSpaceConf that I forgot to make a newsletter. This one will just have to be TWICE AS GOOD!

Graph Story instances now come with APOC pre-installed; AWS US East 2 now available

A couple pieces of awesome news: all new Graph Story instances will now come with the super-cool APOC add-on pre-installed! APOC adds a bunch of fancy functionality, like loading data from external JSON and XML, spatial features, date/time conversions, exporting to GraphML, and way way more.Check the documentation for all the details.

Second, we now support the US East 2 region on AWS! That means you can finally serve the huge Ohio market with properly geo-located machines!

Draw a graph, get the Cypher

The Arrows tool by Alistair Jones lets you draw a graph model in your browser, and then export the model as HTML, SVG, or Cypher commands. This is a really cool way to visually model your graphs ahead of time. Super smart!


Meaningful User Experience with Graph Data

This video presentation by Chris LaCava and William Lyon offers a bunch of useful info about creating great user experiences based on graph data:

Topics include: network analysis queries with Cypher and APOC, tailoring experiences to the intended audience and data, determining the the right visualization for the job and, cutting through the clutter on choosing the right visualization tools.

• • •

Found other awesome resources for graph dbs or Neo4j? Let us know!!

Until next week,

Ed Finkler
Graph Story

Graph Story Newsletter: Much Love for Beginners 💚💜💙💛

This week is all about BEGINNERS! Here are the best resources we could find for folks just starting out with graph databases and Neo4j.

What the heck is a graph database?

We created a short series on the what, why, and how of graph DBs, aimed at people who have never touched one. It’s important to get the basic concepts, but so many articles focus on big picture stuff (BIG DATA AND MACHINE LEARNING AND NETWORKS AND STUFF). Our articles make it easy to understand what the graph is, and how to make it work.

Getting Started with Neo4j

This tutorial is a nice intro to Neo4j by Neo Technologies. It’s essentially the same thing as the built-in :play movie graph command in the Neo4j Web UI that you get with every Graph Story instance, but this has more explanatory content to go along with it, as well as exercises and solutions.

Exploring networks with graph databases

Data journalist Leila Haddou has a great tutorial for beginners that focuses on exploring data relationships with Neo4j. It steps you through very basic Cypher, and importing CSV datasets into Neo4j, then finding connections that would be difficult or impossible to discover in a relational DB.

Neo4j Flask

Data scientist Nicole White created a small microblogging app powered by Neo4j and the Flask microframework for Python. This is a great example of seeing Neo4j and Cypher in a real, working app situation.

Cypher Cheat Sheet

They call it a “Refcard,” but it’s more fun to call it a cheat sheet. I’m always forgetting how to do this or that in Neo4j, and having this quick reference close by is super handy.

• • •

Found other awesome resources for graph dbs or Neo4j? Let us know!!

Until next week,

Ed Finkler
Graph Story

Graph Story Newsletter: Graphs Make Us Safe From Tainted Burritos

I stopped eating burritos from a major chain a while ago because I didn’t want to die, but they pulled me back in with their brown rice and delicious barbacoa. As we learn below, I chew a little more confidently now, knowing graphs are watching out for my food safety. Also you should buy a Graph Story instance now.

The benefits of graph databases in relation to supply chain

This headline sounds like some business nerd mumbo jumbo, but it has real benefits when you’re getting your burrito on and don’t want to get food poisoning. Chris Morrison, CEO at Transparency One, writes about the need for food brangs to track supply chains, so they can know about potential disruptions or safety issues:

Graph database technology presented itself as a viable solution. That’s because graph databases recommend themselves as being uniquely well qualified at handling large, highly-connected volumes of data at scale.

There are a number of graph databases available, and as an example the Neo Technology’s Neo4j, which took 3 months to build, was tested with dummy data for several thousand products, and there were absolutely no performance issues.

As for the search response time, results were sent back within seconds.

Read the whole thing.


We’ve mentioned this before when talking about William Lyon’s awesome blog posts, but neovis.js is a promising JavaScript library that focuses on visualizing Neo4j data. The project could probably use some assistance from motivated individuals.

Neo4j With Scala: Migrate Data From Other Database to Neo4j

Part of the Neo4j With Scala blog series, this post focuses on importing data info Neo4j from PostgreSQL, MySQL, Cassandra, and Oracle. All of this is accomplished with the awesome APOC plugin, which we are happy to install on any Graph Story Neo4j instances.

• • •

Are you doing something cool with graphs at Graph Story? Let us know! We want to talk about what our customers are doing here in the newsletter.

Until next week,

Ed Finkler
CTO, Graph Story

Graph Story Newsletter: Leftpad wouldn’t have happened if you used Neo4j

I’m in Seattle this week to talk graphs at PNWPHP, but nothing can keep me from you, or writing this newsletter. NOTHING.

Graph Database with Neo4j and a .NET Client

If you’re using .NET, Chris Skardon and Michael Hunger have written a great intro to Neo4j on the .NET platform. It’s a quick intro to Graphs and Neo4j, plus the basics of calling Cypher queries from C#.

Oh, you wish you had Neo4j on Azure for your .NET application? Graph Story can do that for you!

Neo4j + KeyLines: The Developer’s Route out of Dependency Hell

Hey, remember leftpad? Oops! That sucked, right? Miro Marchi from Cambridge Intelligence breaks down how he used Neo4j and the KeyLines Toolkit to analyze NPM package dependencies and find what would be affected by loss of a single package. He also does analysis of code licenses and compatibility issues. Cool stuff!

William Lyon’s blog is filled with awesome Neo4j articles, and this one is no exception. It steps you through creating a content recommendation system based on links posted to Twitter using Python. It has great, detailed code examples, taking you from retrieving the data on Twitter to scoring links for recommendation in Neo4j.

• • •

Are you doing something cool with graphs at Graph Story? Let us know! We want to talk about what our customers are doing here in the newsletter.

Until next week,

Ed Finkler
CTO, Graph Story

Graph Story Newsletter for Friday, Sept 9, 2016

A Song of Vertices and Edges

Big RAM Neo4j Instances on Google Compute Engine

Do you need a phat, RAM-heavy virtual machine for Neo4j? It’s worth checking out what Graph Story offers on Google Compute Engine. A 4-core instance with 26GB RAM costs less than an AWS 4-core instance with 15GB. More RAM, less money, seems legit. More and more of our customers are getting on GCE because of the pricing we can offer. Check out our pricing page for more info.

NDP Episode #9: Graph Databases with Neo4j

On the latest episode of the NoSQL Database Podcast, host Nic Raboy is joined by Neo4j developer relations person Ryan Boyd to talk about some key advantages that graph databases have, and why they’re so much better than alternatives in modeling relationships. There’s important info here for winning database arguments with your friends and colleagues.

Analyzing the Graph of Thrones

Man, isn’t Game of Thrones cool? Not the books because I don’t read, but the show with the blood and the nudity and the swords. That is awesome. You know what else is awesome? Graphs. Let’s combine them!

William Lyon did just that with his article “Analyzing the Graph of Thrones,”which breaks down analysis of the GoT social graph. It’s a great read, in particular because it does an excellent job of explaining several graph metrics like “betweenness centrality” and “pivotal nodes” and other smart words. Then the author pulls it into python-igraph, a port of an R graph analysis library, to do stuff like calculate page rank and community detection. The examples are straightforward and comprehensible, and there’s tons to learn from here.

Power a Github Notification Bot for Issue Reviewers with Graph Based NLP

Our boy Christophe Willemsen over at GraphAware wrote up a really interesting blog about building a bot that automatically chooses and notifies reviewers for GitHub pull requests. He uses the APOC procedures library and the GraphAware Natural Language Processing plugin for Neo4j, which is totally going to available real soon now. It’s a good breakdown on how you would load external data into Neo4j and use NLP to analyze and make conclusions about your dataset.

• • •

Are you doing something cool with graphs at Graph Story? Let us know! We want to talk about what our customers are doing here in the newsletter.

Until next week,

Ed Finkler
CTO, Graph Story

Building a Neo4j Graph on the Side

When the topic of graph databases — specifically Neo4j — has come up in the IRC chatrooms I lurk in, I hear a common refrain: “Neo4j is really awesome, and there’s no way my boss will ever let me use it.”

I also hear from its sibling a lot: “Neo4j looks really cool, but I have no idea what I’d use it for.”

Both are pretty common issue for developer types. They’re interested in exploring a technology or platform, but don’t think it has a place in the work they do on a daily basis. That’s where our friend the side project comes in.


The side project lets you make whatever you feel like on your own time. You get to build something substantive, and in the process give you opportunities to:

  1. Learn new technologies and techniques
  2. Follow a passion or curiosity
  3. Demonstrate expertise and a willingness to learn new skills. Career++!

Here are some ideas for side projects that would involve graphs:

  • Ask 20 people you know for their top 5 favorite movies. Put the friends and movies in a graph. Find interesting patterns (my friends who like this movie often also like that movie). You’re now well on your way to making a simple recommendation engine.
  • Build a blog driven by a graph instead of a relational database. While it doesn’t sound like one the traditional “sweet spots” for graphs, there’s no reason you can’t do it, and could explore both relationship/discovery and the simpler, easier model of nodes and relationships vs. tables and joins.
  • Create a graph-driven version of the Open Movie DB. This is a big data source, so a lot of the work would be in conversion, but even if you got a subset you could do a lot of interesting stuff, and it would be a good examination of the power of the graph model vs relational databases.
  • Grab your last X tweets from Twitter (because everyone uses Twitter, right?) and put them into a graph. Make sure to separate entity types like users, tweets, hashtags, etc. Then you can easily examine your posting and interaction patterns using Cypher queries. Extra credit for making fancy charts and visualizations.

Since you’re doing this on your own, you don’t have to be fancy. It doesn’t need accoutremont like a well-designed UI or an authentication system, until you decide it does. You can explore the stuff that interests you, and leave the bits that don’t.

OmNomHub by Michelle Sanver is a great example of a side project that uses Neo4j. You can also see her talks on Neo4j, which use OmNomHub as an example of how graphs can be useful and powerful.

It can be hard to find the time for a side project, especially if you have lots of other responsibilities. Making time for one can be extremely rewarding, both personally and professionally. If you have an idea, sign up for our free trial, and give Neo4j a spin.

Comparing Graph and Relational Databases

When comparing graph databases to relational databases, one thing that should be clear up front is data affiliation does not have to be exclusive. That is, graph databases – and other NoSQL options – will likely not replace relational databases on the whole. There are well-defined use cases that involve relational databases for the foreseeable future.

However, there are limitations – particularly the time as well as the risk involved to make additions to or updates to a relational database – that have opened up room to use alternatives or, at least, consider complimentary data storage solutions.

In fact, there are a number of use cases where relational databases are often poor fit for the goals of certain data, such as social relationships at-scale or intelligent recommendation engines. Overall, the limitation of how a relationship is defined within a relational database is a main reason to consider a switch to a graph database.

Also, industries of all types are seeing exponential data growth and the type of data that is growing fastest is unstructured. It doesn’t fit well in columns & rows – AKA the relational database schema.

Using a schema-less database model found in graph databases is a huge benefit for applications and the developers that maintain them. If the application can drive the data model, it fits better the with development cycle and can reduce risk when making model changes later.

The relationships in a property graph, like nodes, can have their own properties, such as a weighted score. With that capability, it would be relatively trivial to add this new property on a relationship. It’s especisally useful when the relationahip was not defined when the application was initially created.

For applications that use a relational database, this would be done by creating a join table – as it is known as a in the RDBMS world. This new table joins together two other tables and allows for properties to be stored about that relationship. While is a common practice, it adds a significant layer of complexity and maintenance that does not exist within the graph database world.

Yet another reason you might consider moving to graph database is to remove the work-arounds that must be used to make an application fit within a relational database.   As discussed the previous example, a join table is created in order have metadata that provides properties about relationships between two tables.

Often, new relationships will need to be created, which requires yet another join table. Even if it has the same properties as the other join table, it must be separate in order to ensure the integrity of the relationships.

In the case of graph databases, typed relationships can exist between more than just two types of nodes, For example, a relationship called “LIKES”, e.g.(person)-[:LIKES]->(book), can also be applied to other node types, e.g. (person)-[:LIKES]->(movie).   In fact, the relationship type could be applied between any of the applicable nodes in the graph.

Another reason to consider graph databases over relational database is what can be referred to as “join hell”. While creating the join can be relatively trial, those types of joins provide the least expressive data. Again, applications very often require joins over several tables. It is in this case that the big expense of joins begin to show – in both the development time and the application performance. In addition, if you wanted to modify the join query, it might also require adding more join tables – adding even more complexity to development and worse application performance.

Adding new relationships and the queries that represent them occur at application level. This removes a level development complexity and time and offer better application performance.

While the differences between graph and relational databases, there are a few similarities. A significant similarity is that both can achieve what is known as ACID compliance. It is these set of principles that guarantee that transactions completed by the database are processed reliably, which keeps data safe and consistent.

Powered by WordPress & Theme by Anders Norén