- Run Neo4j on Linux or BSD
- Take advantage of the training options offered by Neo4j, Inc.
- Talk to others in the community
- Don't use Neo4j for the first time on something mission-critical
- Recruit someone to your team who has graph database experience
- Once in production, continue to monitor your instances' JVMs for GC performance and tune as necessary
As with all NoSQL data stores, it is important to remember that Neo4j is not a general-purpose database. It works well with specific use cases. Usually such cases are where the relationship is as (or more) important as the entities that it connects. To that end, Neo4j makes a great fit for things such as social networks, matchmaking sites, network management systems, and recommendation engines.
Equally as important as applying Neo4j to a proper use case is knowing what Neo4j antipatterns look like. Be sure to avoid using Neo4j with a full relational model (it is not a RDBMS). Try to avoid improper use of relationship types, as well as storing entities and relationships within other entities. Neo4j doesn't handle BLOB data particularly well, nor does it perform optimally when too many properties have been indexed.
Finally, it is a good idea to have a proof-of-concept (POC) project as your first foray into Neo4j. Using it for the first time on something mission-critical without an appropriately-experienced development team is a recipe for failure.
In summary, it should be apparent as to why Neo4j is the most widely-adopted NoSQL database used to solve graph problems. It supports interaction with drivers from several different languages and offers Cypher as its own graph-based query language. Newer users can get a feel for solving smaller graph problems on the Community Edition, while the Neo4j Enterprise Edition is capable of scaling to meet larger operational workloads. For more information, check out http://www.neo4j.com/ today.