Transactions with Aerospike Graph

Hello,

I’m really impressed by the aerospike and aerospike graph solutions. I’m trying to understand aerospike graph capabilities regarding transactions. It is stated here that it is not supported : TinkerPop feature support | Aerospike Documentation And there is documentation about how to configure the solution for transaction support here : https://aerospike.com/docs/graph/develop/query/transactions/ I wanted to understand if transactions carried over multiple instructions can be done with aerospike graph and the java tinkerpop gremlin client.

For exemple, i would like to know if I can do something like (with g being a org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource) :

var transaction = g.tx();
transaction.begin();
var myFirstType = g.addV("myFirstType").property(T.id, "FT1").next();
var mySecondType = g.addV("mySecondType").property(T.id, "ST1").next();
 g.addE("myLinkType").property("startedAt",utc.toEpochMilli())
                    .from(myFirstType )
                    .to(mySecondType )
                    .next();
transaction.commit();

At the moment I have “java.util.concurrent.CompletionException: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Graph does not support transactions”. But i’m trying to assert if it is a configuration problem on my side or if i am trying to do something unsupported.

Best regards, Olivier Massol

Hi Olivier, We currently do not support Gremlin Transactions (g.tx(), commit, rollback semantics). However, with Strong Consistency (SC) enabled, we do provide atomicity and isolation across multiple mutation steps, as described here:

That said, support for full Gremlin transaction semantics is on our roadmap for an upcoming release.

I’d love to learn more about what you’re looking to build so we can take your requirements into account as we design and implement this functionality.