JanusGraphes una base de datos de Grafos open-source (licencia Apache2) optimizada para almacenar y consultar grafos que contengan billones de vertices y Edges distribuidos en un Cluster y todo esto con usuarios concurrentes.

Veamos un ejemplo:

Para el grafo “The Graph of the Gods”

En Java lo cargaría así: https://github.com/JanusGraph/janusgraph/blob/master/janusgraph-core/src/main/java/org/janusgraph/example/GraphOfTheGodsFactory.java

Y ya puedo consultar con la consola de Gremlin.

Para saber quienes eran los padres de Hércules:

O quien es el nieto de Saturno:

Que se puede hacer también así:

O si quiero conocer todas las batallas entre Dioses que pasaron en un radio de 50 kms del centro de Atenas (latitude:37.97 y long:23.72)

Sus principales características son:

· Escalabilidad lineal y elástica para ir creciendo conforme se necesite

· Distribución y replicación de datos

· Soporte despliegue multi-datacenter

· Backups en caliente

· Soporte ACID and eventual consistency.

· Soporte para persistencia sobre diferentes backends: Apache Cassandra, Apache HBase, Google Cloud Bigtable y Oracle BerkeleyDB

· Soporte para graph data analytics sobre estas plataformas Apache Spark, Apache Giraph y Apache Hadoop

· Soporte para búsqueda full-text vía ElasticSearch, Apache Solr y Apache Lucene®

· Integración native con stack Apache TinkerPop vía Gremlin graph query language, Gremlin graph server y Gremlin applications

· Visualización de grafos vía Cytoscape, Gephi plugin for Apache TinkerPop, Graphexp, KeyLines by Cambridge Intelligence y Linkurious

Puedes seguir en la guía Getting Started with JanusGraph, descargarla aquí o accede a JanusGraph documentation

JanusGraph es usada en Producción por empresas como Red Hat, Uber o Netflix: