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 > 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. 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. >
