Skip to content

Instantly share code, notes, and snippets.

@whostolebenfrog
Last active December 14, 2015 14:18
Show Gist options
  • Save whostolebenfrog/5099502 to your computer and use it in GitHub Desktop.
Save whostolebenfrog/5099502 to your computer and use it in GitHub Desktop.
Notes on Becoming polyglot - putting neo4j into production. Toby O'Rourke

Neo4j - Becoming polyglot, Putting neo4j into production and what happened next

Bite the bullet - try something novel, they found that getting the tech in allows you to find new usecases and understand what and where it can be used.

Neo technology were the big player, OrientDB and Dex are new players with seemingly successful use. Graph space is becoming bigger. www.orientdb.org sparsity-technologies.com/dex

tinkerpop, Blueprints -> like jdbc for graphs? You don't have to program to the vendors APIs. This means you can compare between the various vendors without having to reimplement for each one. www.tinkerpop.com

They ended up using spring data 2... :-/

Need to have a play with this stuff -> neocons for clojure. #clojurewerkz

They found that they didn't need a layer of middleware between the core logic and the database. Logic in the domain objects.

BlueprintBackedMemberStateRetrievalBehaviour -- #java

They started off with Blueprint but decided to ditch it as they found that it only gave them the lowest common denominator. After having spoken to the various neo4j peeps at Skillsmatter they switched to using neo directly.

Neo4jBackedMemberStateRetrievalBehaviour -- #java

Graph model is much likely to be closer to what your domain actually is.

Server REST api is very fine grained and could generate a lot of traffic. Server plugins are a nice way of having multi-tenancy in a single graph? -- they missed a trick here, not packing their app into an "unmanaged server plugin" -- could give 3 or 4 different problems represented on a single graph. Each a small implementation. Rather than a massive god app that does all. Embedded Neo (they went for this) - might make n-tier types nervous, neo not exposed to the outside. HA cluster with ZooKeeper - requires a licence. ZK 1.8.x - going away in 1.9.x & later.

Separate node as part of a cluster, not serving live request for ad-hoc querying. -- single node that wasn't running their app to the cluster - this node would never be master (he wasn't sure why). This is for running updates on which propagate into the cluster. Run's queries etc, allows access to the neo console.

Console good for showing non-technical people what a graph db does. Allows them to actually explore. Means you get good questions like "how can we use this to do x?"

Cypher and reporting -- seems crazy but is apparently brilliant. -- look at mutating cypher

http://watch.neo4j.org/video/60292144

Don't fight the graph part, don't disconnect it from your domain. Embrace it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment