We've had many discussion on this list about what TP4 will be. We've migrated a number of those ideas to the "future" scratchpad[1]. We've even introduced a number of concepts to TP3 which will help form the basis for TP4, like with() for provider specific instructions and Jorge's neat new work on the binary serialization format[2] which looks really promising. There have been numerous blog posts that created a lot of the thinking for what TP4 should be about as well[3][4].
Parallel to the TP4 design strategy is the position TinkerPop takes in the graph community. We want that position clear for users so that they are aware of the benefits they gain by considering TinkerPop-enabled systems. We want that position clear to graph providers, so that they can feel confident that fully leveraging/supporting TinkerPop is in their best interest and yields them the greatest flexibility/capability in building their offering. Finally, we want this position clear for ourselves so that we can use it to help guide TP4 decision making along those lines. Months ago, I conveyed my thoughts on our positioning informally on our mailing lists[5]. The problem here is that these thoughts and works are spread unevenly across a lot of different places. Marko recently set to work with collaboration from me to help drag all of these things together into a single coherent document. This document explains the history of the TinkerPop project in relation to its lore (never previously unified or fully explained) and describes the vision for TP4 using that background context. There are no timelines for TP4 at the moment save for perhaps a starting date in the middle of 2019 somewhere...hard to say when such development would end obviously and I wouldn't venture to guess. The document does not yet address compatibility which I think should be rectified - going to suggest that to Marko today. I think forward/backward compatibility seems achievable given bytecode i.e. it's just translating TP3 bytecode to TP4 bytecode (or the reverse). I'd like to keep compatibility forefront in our minds to try to make adoption and transition as smooth as possible. At this point, we would be interested in feedback that could be incorporated into the document from the community. The dev list strips attachments and I don't really want to make this document widely released yet (i.e. put it on the general internet) so if you are interested in reviewing a copy, please just reply to this thread and I will share the PDF with you. Please continue to discuss feedback here on this thread though. [1] http://tinkerpop.apache.org/docs/current/dev/future/ [2] https://issues.apache.org/jira/browse/TINKERPOP-1942 [3] https://www.datastax.com/dev/blog/the-von-gremlin-architecture [4] https://www.datastax.com/dev/blog/a-gremlin-implementation-of-the-gremlin-traversal-machine [5] https://groups.google.com/d/msg/gremlin-users/czzHhYsbEmg/htgJGF4iBAAJ
