Hi Stephen,
On Mon, Jan 13, 2020 at 4:54 AM Stephen Mallette <[email protected]> wrote: > [...] > Interesting idea to use thrift to generate process classes like steps. > Having some foundational code could be helpful in starting up and > maintaining a GLV. Thrift IDL is currently the RPC language with the most robust support by Dragon, the schema toolkit I am preparing to release. Protobuf and Avro support are also pretty good, as we use generated Proto and Avro schemas in production at Uber. > With Idris I'd hoped to get more than just some > interfaces and some core code that could supply some working logic to every > language ecosystem we supported but perhaps that was asking too much. > W.r.t. using Idris to generate TinkerGraph implementations, I am not entirely sure it's feasible, not to say it definitely isn't. A graph implementation involves a lot of stateful operations I haven't given much thought to from a representational point of view. But maybe. I am more confident that we could come up with a schema for Gremlin steps and Gremlin traversals, and generate code to evaluate traversals in multiple programming languages. Maybe it isn't even necessary to generate the Idris code; it might be enough to hand-code implementations in Idris and let Idris code generation carry them into the target languages. What is a little less clear to me is how we can get both: a) working executable code, and b) clean and extensible interface definitions for each target language using a single approach to code generation. > I've looked at Thrift before as a possible serialization format for use to > use with Gremlin Server but given the adherence to schema that it required > I opted away from it. Given that we now look to have the notion of a schema > in TP4 I suppose Thrift, protocolbuffers and other such formats and > protocols are back on the table for consideration. There is a whole > separate discussion to be had about "Gremlin Server" and the methods by > which users "connect" to a graph for TP4, but perhaps I will save that for > a separate thread so as not to redirect this one too much. > I definitely think there is value in exploring this. If we can write an APG schema for traversals and results, there will be straightforward paths to remote execution using Thrift, gRPC etc., or Avro for a start. Josh > > On Fri, Jan 10, 2020 at 1:43 PM Joshua Shinavier <[email protected]> > wrote: > [...]
