Foreword - Neo4j in Action (2015)

Neo4j in Action (2015)

Foreword

The database world is experiencing an enormous upheaval, with the hegemony of relational databases being challenged by a plethora of new technologies under the NoSQL banner. Among these approaches, graphs are gaining substantial credibility as a means of analyzing data across a broad range of domains.

Most NoSQL databases address the perceived performance limitations of relational databases, which flounder when confronted with the exponential growth in data volumes that we’ve witnessed over the last few years. But data growth is only one of the challenges we face. Not only is data growing, it’s also becoming more interconnected and more variably structured. In short, it’s becoming far more networked.

In addressing performance and scalability, NoSQL has generally given up on the capabilities of the relational model with regard to interconnected data. Graph databases, in contrast, revitalize the world of connected data, outperforming relational databases by several orders of magnitude. Many of the most interesting questions we want to ask of our data require us to understand not only that things are connected, but also the differences between those connections. Graph databases offer the most powerful and best-performing means for generating this kind of insight.

Connected data poses difficulties for most NoSQL databases, which manage documents, columns, or key/value pairs as disconnected aggregates. To create any semblance of connectedness using these technologies, we must find a way to both denormalize data and fudge connections onto an inherently disconnected model. This is not a trivial undertaking, as we have discovered in building Neo4j itself!

Neo4j has come to fruition over the same timeframe as the other frontrunners in the NoSQL world. (In fact, Neo4j predates many other NoSQL technologies by several years.) Neo4j provides traditional database-like support (including transactional safety) for highly connected data, while also providing orders of magnitude (“minutes to milliseconds”) better performance than relational databases. For domains as varied as social computing, recommendation engines, telecoms, authorization and access control, routing and logistics, product catalogs, datacenter management, career management, fraud detection, policing, and geospatial, Neo4j has demonstrated it’s an ideal choice for tackling complex data.

Because Neo4j is by far the most popular graph database, it’s the one that most developers will encounter. We know that this “first contact” with a new technology like Neo4j can be bewildering. The tyranny of choice regarding different APIs, bindings, query languages, and frameworks can be daunting, and it’s easy to be put off.

Neo4j in Action addresses these concerns by getting developers up and running quickly with Neo4j. It takes a pragmatic programmatic tour through Neo4j’s APIs and its query language, and provides examples based on the authors’ extensive real-world use of the database. Complementing this development advice, the authors also discuss deployment options and solution architectures. The result is a rounded, holistic view of Neo4j as seen in the context of the full systems development lifecycle.

As Neo4j contributors and authors ourselves, we value Neo4j in Action for its no-nonsense, hands-on approach, and its willingness to back its assertions using reproducible tests. The authors are some of the most experienced Neo4j users around, and we’re very pleased to see their authority and knowledge made available to all developers through this book.

JIM WEBBER

CHIEF SCIENTIST, NEO TECHNOLOGY

IAN ROBINSON

ENGINEER, NEO TECHNOLOGY