Check out this new RemoteGraph business for 3.2.0...

gremlin> graph = RemoteGraph.open('conf/remote-graph.properties')
==>remotegraph[DriverServerConnection-localhost/127.0.0.1:8182
[graph=graph]]
gremlin> g = graph.traversal()
==>graphtraversalsource[remotegraph[DriverServerConnection-localhost/
127.0.0.1:8182 [graph=graph]], standard]
gremlin> g.V().valueMap(true)
==>[label:person, name:[marko], id:1, age:[29]]
==>[label:person, name:[vadas], id:2, age:[27]]
==>[label:software, name:[lop], id:3, lang:[java]]
==>[label:person, name:[josh], id:4, age:[32]]
==>[label:software, name:[ripple], id:5, lang:[java]]
==>[label:person, name:[peter], id:6, age:[35]]

So what's happening here? RemoteGraph is a lightweight proxy Graph
implementation. Traversals generated from this Graph are automatically
serialized and sent to a "remote" - in this case Gremlin Server - where it
can be executed and results returned. With this model we say good-bye to
doing long strings of gremlin embedded in our code and submitted through
the driver and we can just write gremlin directly in the IDE.

Some limitations you will encounter right out of the gate:

* RemoteGraph is not a full Graph implementation. you use it to call
graph.traversal() and that's about it
* It does not support lambdas as they are not serializable, but you likely
shouldn't be using lambdas anyway in your gremlin so hopefully that's not
too big a problem.

We have lots of room for improvement on this work, but this is a good
functional beginning. Let the feedback begin.

Enjoy!

Stephen

Reply via email to