On 2021/01/15 17:03:35, Stephen Mallette <[email protected]> wrote: > welcome and thanks for the questions. > > > Q1. Is this WebSocket based protocol specified somewhere? It includes > questions regarding Gremlin query and response serialization. I would like > to follow the official spec in order to implement the same protocol. > > The protocol is documented here: > > https://tinkerpop.apache.org/docs/3.4.9/dev/provider/#_graph_driver_provider_requirements
Good, it looks like a comprehensive spec. > > > Is there an official test suite/kit what could be put in place of the > client side (the one with nodejs app) and it would test whether a new > server side implementation really supports the same communication protocol > and can speak Gremlin (maybe not all operators are expected to work or > there are levels of support, etc). > > Most providers use our test suite directly against their graph to validate > that Gremlin behaves properly: > > https://tinkerpop.apache.org/docs/3.4.9/dev/provider/#validating-with-gremlin-test > > but I suppose that does not work well if you have a go backend. the suite > is largely designed to interoperate with the JVM only. That said, we've > been making progress toward breaking from that dependency with our GLV test > suite which is basically the pure Java test suite ported to cucumber: > > https://github.com/apache/tinkerpop/tree/3.4-dev/gremlin-test/features > > You would have to write your own test infrastructure to consume them but at > least the Gremlin and the test expectations are all there. I suppose that > is only one part of the issue though as it focuses more on more on Gremlin > processing and less on intricacies of driver interactions at the protocol > level. i've had it in my mind to somehow re-adjust the whole suite around > cucumber and to make it flexible enough to handle the current use cases we > have plus the sort of one you're bringing up but it's not an easy quick > sort of thing to work on. > > happy to try to answer other questions you might have as you try to build > your new graph and to discuss possible ways to make the suite better and > more open verify the different ways TinkerPop is implemented. > Thank you, it looks to be a very good start point for me. > > On Thu, Jan 14, 2021 at 9:30 AM floodway floodway <[email protected]> > wrote: > > > Hello, > > > > For example, currently I have the following situation: > > > > [nodejs app with gremlin npm module] ---<talks Gremlin via WebSocket > > to>--- [official JVM based gremlin server with TinkerGraph] > > > > And what if I would like to create a custom part of the server side, from > > scratch, i.e. no parts of existing TinkerPop project are used at all, e.g. > > a Golang based project. In order to get the following: > > > > [nodejs app with gremlin npm module] ---<talks Gremlin via WebSocket > > to>--- [another graph db impl] > > > > So, I will be able to simply replace it with another implementation. > > > > It looks to be possible, but I have several organisational questions. > > > > Q1. Is this WebSocket based protocol specified somewhere? It includes > > questions regarding Gremlin query and response serialization. I would like > > to follow the official spec in order to implement the same protocol. > > > > Q2. Is there an official test suite/kit what could be put in place of the > > client side (the one with nodejs app) and it would test whether a new > > server side implementation really supports the same communication protocol > > and can speak Gremlin (maybe not all operators are expected to work or > > there are levels of support, etc). > > > > Thanks in advance for any advice. > > >
