Search code examples
gremlingraph-databasestinkerpoptinkerpop3amazon-neptune

Amazon Neptune compatible with Tinkerpop? Why and how?


I'm trying to learn a bit about graph languages and the query language Gremlin. This is from the docs:

Amazon Neptune is compatible with Apache TinkerPop3 and Gremlin 3.4.1. This means that you can connect to a Neptune DB instance and use the Gremlin traversal language to query the graph (see The Graph in the Apache TinkerPop3 documentation).

Aren't neptune and tinkerpop 2 competing graph databases? What does it mean for one database to be compatible with another?

Also curious...why would apache release it's query language Gremlin for use on other databases? What's the idea behind that?

EDIT

Oh I see, tinkerpop is some kind of graph framework that is compatible with neptune.... whatever that means.


Solution

  • Apache Tinkerpop is a framework and it defines a graph query language named Gremlin. Vendors and developers can build their own graph databases by implementing the data model defined in Tinkerpop, there by making them Tinkerpop (and Gremlin) compatible. Read more in their offical docs[1].

    Tinkerpop also provides a light weight implementation of their framework known as Tinkergraph, which is nothing but an in-memory implementation of the TP stack. If a vendor is tinker pop compatible, a customer should be able to use either Tinkergraph or the vendor's DB and get the same experience. Amazon Neptune has some documented differences with the TP spec though. Those are called out in the docs[2].

    Hope this helps.

    [1] http://tinkerpop.apache.org/providers.html

    [2] https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-differences.html