Elegir una forma adecuada de usar Neo4j en Python

Actualmente estoy usando el enlace de python incrustado para neo4j. Actualmente no tengo problemas, ya que mi gráfico es muy pequeño (escaso y hasta 100 nodos). El algoritmo que estoy desarrollando implica muchos recorridos en el gráfico, más específicamente el DFS en el gráfico en general, así como en diferentes subgrafos. En el futuro, pretendo ejecutar el algoritmo en gráficos grandes (supuestamente escasos y con millones de nodos).

Después de leer diferentes subprocesos relacionados con el rendimiento de los enlaces python / neo4j aquí , me pregunto si ya debería cambiar a algún cliente API REST para Python (como bulbflow, py2neo, neo4jrestclient) hasta que esté demasiado lejos para cambiar todo el código.

Desafortunadamente, no encontré ninguna fuente de información completa para comparar diferentes enfoques.

¿Alguien podría proporcionar alguna información adicional sobre este problema? ¿Qué criterios debo tener en cuenta al elegir una de las opciones?

    Django es un marco web de MVC, por lo que puede interesarle que el suyo sea una aplicación web.

    Desde el punto de vista de py2neo (del cual soy el autor), estoy tratando de concentrarme en el rendimiento mediante el uso del mecanismo de ejecución por lotes de forma automática cuando sea apropiado, así como al proporcionar un soporte Cypher sólido. También he puesto mucho trabajo en proporcionar buenas opciones para la administración de la singularidad dentro de los índices, específicamente, los métodos get_or_create y add_if_none .

    La forma más sencilla de ejecutar algoritmos desde Python es usar Gremlin ( https://github.com/tinkerpop/gremlin/wiki) .

    Con Gremlin puede agrupar todo en una solicitud HTTP para reducir los gastos generales de ida y vuelta.

    Aquí le mostramos cómo ejecutar los scripts Gremlin desde Bulbs ( http://bulbflow.com ):

     >>> from bulbs.neo4jserver import Graph >>> g = Graph() >>> script = "gv(id).out('knows').out('knows')" >>> params = dict(id=3) >>> g.gremlin.execute(script, params) 

    Los documentos de la API de Bulbs Gremlin están aquí: http://bulbflow.com/docs/api/bulbs/gremlin/

    No estoy seguro, no soy un experto, pero creo que también depende de sus expectativas de Django y de la cantidad de marco que necesita. Py2neo es muy pragmático y delgado, Bulbflow parece acumular una stack de mapeo completa, etc., y neo4jrestclient se concentra en Django (eso puede estar mal).