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:
> [...]

Reply via email to