What is Neo4j?

Neo4j stores data in nodes connected by directed, typed relationships with properties on both, also known as a Property Graph. It is a high performance graph store with all the features expected of a mature and robust database, like a friendly query language and ACID transactions.
Neo4j is a tool in the Graph Databases category of a tech stack.
Neo4j is an open source tool with 8.3K GitHub stars and 1.9K GitHub forks. Here’s a link to Neo4j's open source repository on GitHub

Who uses Neo4j?

Companies
189 companies reportedly use Neo4j in their tech stacks, including Stack, medium.com, and Pratilipi.

Developers
583 developers on StackShare have stated that they use Neo4j.

Neo4j Integrations

Google Anthos, GrapheneDB, Linkurious, Cartography, and Graph Story are some of the popular tools that integrate with Neo4j. Here's a list of all 8 tools that integrate with Neo4j.
Public Decisions about Neo4j

Here are some stack decisions, common use cases and reviews by companies and developers who chose Neo4j in their tech stack.

Axel Dürkop
at Hamburg University of Technology · | 6 upvotes · 37.6K views
Shared insights
on
D3.js
Neo4j

I want to build learning paths in a simple way and visualize them, the way Neo4j or D3.js do it. Example: I have a set of learning resources that can be connected depending on certain criteria. Thus, it would be possible for learners to start from various starting points and have learning paths depending on this starting point.

Following this, I need two things: first, a UI that lets me connect entries from a database so that a linear view, like a path, comes out. And second, a bird's eye view on the various paths like a force-directed graph that stems from the linear connections I made.

See more

We have an in-house build experiment management system. We produce samples as input to the next step, which then could produce 1 sample(1-1) and many samples (1 - many). There are many steps like this. So far, we are tracking genealogy (limited tracking) in the MySQL database, which is becoming hard to trace back to the original material or sample(I can give more details if required). So, we are considering a Graph database. I am requesting advice from the experts.

  1. Is a graph database the right choice, or can we manage with RDBMS?
  2. If RDBMS, which RDMS, which feature, or which approach could make this manageable or sustainable
  3. If Graph database(Neo4j, OrientDB, Azure Cosmos DB, Amazon Neptune, ArangoDB), which one is good, and what are the best practices?

I am sorry that this might be a loaded question.

See more
Shared insights
on
Neo4j
Kafka
MySQL

Hello Stackshare. I'm currently doing some research on real-time reporting and analytics architectures. We have a use case where 1million+ records of users, 4million+ activities, and messages that we want to report against. The start was to present it directly from MySQL, which didn't go well and puts a heavy load on the database. Anybody can suggest something where we feed the data and can report in realtime? Read some articles about ElasticSearch and Kafka https://medium.com/@D11Engg/building-scalable-real-time-analytics-alerting-and-anomaly-detection-architecture-at-dream11-e20edec91d33 EDIT: also considering Neo4j

See more

Blog Posts

Neo4j's Features

  • intuitive, using a graph model for data representation
  • reliable, with full ACID transactions
  • durable and fast, using a custom disk-based, native storage engine
  • massively scalable, up to several billion nodes/relationships/properties
  • highly-available, when distributed across multiple machines
  • expressive, with a powerful, human readable graph query language
  • fast, with a powerful traversal framework for high-speed graph queries
  • embeddable, with a few small jars
  • simple, accessible by a convenient REST interface or an object-oriented Java API

Neo4j Alternatives & Comparisons

What are some alternatives to Neo4j?
Titan
Titan is a scalable graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster. Titan is a transactional database that can support thousands of concurrent users executing complex graph traversals in real time.
MongoDB
MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
Cassandra
Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL.
OrientDB
It is an open source NoSQL database management system written in Java. It is a Multi-model database, supporting graph, document, key/value, and object models, but the relationships are managed as in graph databases with direct connections between records.
JanusGraph
It is a scalable graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster. It is a transactional database that can support thousands of concurrent users executing complex graph traversals in real time.
See all alternatives

Neo4j's Followers
849 developers follow Neo4j to keep up with related blogs and decisions.