I'm going to paste here what I wrote in a side thread:
Well, one reason you don't see a lot of pass-through Graph wrappers in TP3 is that a lot of the things we used to do with wrappers is now accomplished with traversal strategies. Take IdGraph, for example. This allows you to add the user-defined ID feature to a graph that doesn't natively support it. I wrote this in TP2 as a "wrapper", but in TP3 it became ElementIdStrategy. Another example is SubgraphStrategy, which takes the place of a number of Blueprints wrappers for providing a "slice" of the graph. That being said, I think there is still a place for Graph-on-Graph wrappers, and your template would make it easy to experiment with them. You should probably make sure you understand traversal strategies, as well; what you are describing could probably be implemented that way, and might be simpler as a result. Btw. combining graph event processing via Apache Storm with an on-demand graph database (Neo4j, JanusGraph) sounds very interesting. Josh On Sat, Oct 7, 2017 at 9:08 PM, Jeffrey Freeman < jeffrey.free...@syncleus.com> wrote: > The past 24 hours ive been trying to write a simple pass-through graph > provider. Basically a Graph type that takes any other Graph type as an > argument in a constructor and passes all calls through to the graph. I want > to make the framework so someone can then simply override one or two > methods to do simple extensions to existing providers. A HelloWorld test i > am trying to write would be one where all the interactions with the base > graph would be normal except when setting or getting a property on a edge > or a vertex in which case if it is a string it appends a "!" to the end > when setting a property. If i can get that minimal functionality working i > can reuse and extend those classes to create all sorts of more complex > wrapped graphs. I'd like to make that a library on its own that people can > use to create easy wrapped graphs which can be used to extend graph > provider functionality. > > After that id use that library to create a more useful real world utility. > What i want to do is create a graph that is backed by a traditional graph > DB (say neo4j or titan) which stores all the nodes and edges, but any > vertex that has a special property on it would b e treated as a message > queue (like redis in publish and subscribe mode). I want to make it so > messages could be stored in the messaging queue system (redis) but its > content could still be queried from gremlin calls (perhaps treating the > messages a bit like a property that stores an array or something). So I > could essentially create a Titan-redis hybrid or similar that looks like a > unified graph. This in turn could be used as a backend to Apache Storm in > order to encode stream topologies in a Tinkerpop / gremlin format. It would > also then allow you to perform gremlin queries on the graph to see where > bottlenecks in the streams happen to be. > > Sadly I cant even get a basic passthrough to a tinkergraph to work or even > scratch the surface on what im trying to do. > > All I really need to see is a simple example of a graph provider wrapper > but all i keep hearing/seeing are complicated complete solutions. I'm > starting to doubt its even possible in any feasible way, but i keep hoping. > > If anyone can help me please advise. I used to build stuff like this easily > in Tinkerpop2 and I'm trying to resist the urge to go back to Tinkerpop2 > but its becoming more and more likely if i can't get a TP3 solution to > work. >