Jumping in.

If you only need a graph data structure, TinkerGraph-js could certainly
help. IIRC, the TinkerGraph Java code is quite simple and the
JavaScript port doesn't have to change much over time, so it's easy to keep
track of the changes. A graph is basically an object with an array of
vertices and an array of edges, where each vertex holds two arrays
referencing in-going and out-going edges. Add properties on both and you're
set.

However, the real maintenance nightmare is
https://github.com/jbmusso/gremlin-core-js: I managed to have about a
dozen steps working while TP3 was still under heavy development (I think
back around oct. 2014). This would have to be written from scratch in a
more JavaScript idiomatic way, or be automatically compiled. So, if you
also need process (JavaScript traversal), that'd be way trickier :). I
also managed to have it work somehow with sigma.js.
https://github.com/jbmusso/gremlin-sigma

I was thinking about rewriting tinkergraph-js from scratch with ES2015/2016
code. I'll be happy to discuss this. We could also support Immutable.js (or
multiple/pluggable backends, Titan-style). I'm pretty sure a good
JavaScript graph structure will be needed soon considering the recent
giant-leaps in front-end web development, ie. centralized states (tree-ish
structures) and immutability. I'm thinking about Flux, Redux,
Immutable.js, Relay, GraphQL, Falcor, etc.

Have Gremlin Server only stream the diffs and, woa !

Cheers,
JB.

On Wednesday, 16 March 2016, Fred Eisele <fredrick.eis...@gmail.com> wrote:

> > Somehow I think it would be simpler to extend gremlin-server's
> > functionality with a DDP plugin.
> > I'm not sure what the extent of the work required for this would
> >  be but I would expect it to be less work than a port, and at
> > least it would give access to all the features with much less
> maintenance.
> > Have you considered this and reject it for some reason?
>
> Yes, I have considered it and that is a big part of what I have planned.
> This project https://github.com/coreyauger/reactive-gremlin looks very
> similar to parts of DDP.
> What I am really asking about is the client-side-cache contribution to DDP.
> http://info.meteor.com/blog/introducing-ddp
>
>
> On Tue, Mar 15, 2016 at 10:40 AM, Stephen Mallette <spmalle...@gmail.com
> <javascript:;>>
> wrote:
>
> > Hi, Fred, thanks for sharing your project. I don't know much about DDP,
> so
> > I can't comment much on that. Can you clarify what you mean by "Port the
> > in-memory version to javascript using the google closure compiler." Do
> you
> > mean port TinkerGraph to javascript?
>
> Yes (that might be what I mean)
> Hmm, maybe this?
> https://github.com/jbmusso/tinkergraph-js
> The idea is that the client-side-cache is a "miniGremlin" containing a
> subgraph of the server-side-graph-database.
> This allows for better performance in low-bandwidth conditions,
> and leaves the door open for limited off-line work.
>
> >
> > On Tue, Mar 15, 2016 at 10:13 AM, Fred Eisele <fredrick.eis...@gmail.com
> <javascript:;>>
> > wrote:
> >
> > > I am beginning an investigation into making a Distributed Data Protocol
> > > version of Tinkerpop3.
> > > https://www.meteor.com/ddp
> > >
> > > I have been using Tinkerpop3 for a while now but not as a developer.
> > > Here is my plan.
> > >  * Port the in-memory version to javascript using the google closure
> > > compiler.
> > >  * Build a DDP mechanism based on the tinkerpop3 API
> > >  * Integrate into AppShare https://github.com/zubairq/AppShare
> > >
> > > Questions:
> > >  * Is there some compelling reason why this is a bad idea?
> > >  * What portion of the code base is relevant?
> > >  * Has this been tried before?
> > >  * Is there a synchronization already present?
> > >
> > > Thanks
> > >
> >
>


-- 
Jean-Baptiste

Reply via email to