Differences between revisions 10 and 12 (spanning 2 versions)
Revision 10 as of 2014-12-22 19:44:26
Size: 14283
Revision 12 as of 2014-12-22 20:06:41
Size: 13467
Deletions are marked like this. Additions are marked like this.
Line 97: Line 97:
We currently have 2 mailing lists: TinkerPop requests the following mailing lists:
Line 99: Line 99:
|| Gremlin-Users (public user forum) || https://groups.google.com/forum/#!forum/gremlin-users ||
|| TinkerPop-Contributors (private contributors forum) || <private> ||

TinkerPop would prefer to maintain our user forum at Google Groups. Our reasoning is as follows:

 1. There are 1500+ subscribers to the list and requiring them to migrate would be burdensome.
 2. We have 5 years of graph information, technology support, and the like on the list. To have that information "go away" (along with all the threads) would be damaging to our community.
 3. The Apache Foundation mail system is not as sophisticated as Google Groups and we believe, will provide a poorer experience to our users.

Note that we would prefer to transfer over TinkerPop-Contributors to The Apache Foundation mailing list as this list contains the more decision-making/governance correspondences necessary for The Apache Foundation's legal requirements.
 1. dev@tinkerpop.incubator.apache.org
 2. commits@tinkerpop.incubator.apache.org
 3. private@tinkerpop.incubator.apache.org
Line 112: Line 105:
TinkerPop uses GitHub for its source control and wishes to continue to use GitHub. TinkerPop will use subversion for it’s website and requests:

 * https://svn.apache.org/repos/asf/incubator/tinkerpop
Line 116: Line 111:
TinkerPop's GitHub account is: https://github.com/tinkerpop/tinkerpop3. TinkerPop desires to keep developing at this location due to the years of experience our engineers have both with Git as a version control protocol and GitHub as source code environment. TinkerPop wishes to have the following created:
Line 118: Line 113:
 * https://git-wip-us.apache.org/repos/asf/incubator-tinkerpop.git

And to have all of these mirrored to Github with integration taken care of.


A. Abstract

TinkerPop is a graph computing framework written in Java. A graph is a data structure composed of vertices and edges and is useful for modeling complex domains with arbitrary relations (edges, links, lines) between entities (vertices, objects, dots). TinkerPop provides a core API that graph system vendors can implement. There are various types of graph systems including in-memory graph libraries, OLTP graph databases, and OLAP graph processors (see On Graph Computing for more information). Once the core interfaces are implemented, the underlying graph system can be queried using the graph traversal language Gremlin and processed with TinkerPop-enabled algorithms. For many, TinkerPop is seen as the JDBC of the graph computing community.

B. Proposal

TinkerPop was formed in 2009 and is currently in the milestone series of 3.0.0. From the start, TinkerPop has provided its software open source and free to use for which ever reason (commercial or otherwise). Initially the license was BSD, but as of TinkerPop3, the license was changed to Apache2. The TinkerPop team is composed of developers, evangelists, and representatives from graph system vendors (see TinkerPop Contributors for more information). TinkerPop has done its best to remain vendor agnostic and works closely with all vendors to ensure that the constructs within TinkerPop are able to accommodate the requirements of the underlying graph system. To date, 12 "TinkerPop recognized" graph system vendors provide TinkerPop implementations. We believe that by joining The Apache Foundation, our vendors, users, and contributors will feel more comfortable in terms of legal protected, in terms of wider-adoption, and in terms of project stability.

C. Background

TinkerPop was founded in 2009 and has had steady, active development since. Over the years, the Gremlin query language within TinkerPop has been adopted by various JVM languages and as such, there exists Gremlin-Groovy, Gremlin-Scala, Gremlin-Clojure, Gremlin-JavaScript, and the like. In many ways, Gremlin is seen as a traversal style that can be readily adopted within the programming constructs of the developer's native language --- both on and off the JVM. TinkerPop is not bound to the JVM in that developers wishing to interact with a TinkerPop-enabled graph system can leverage Gremlin Server which provides "over the wire" communication as well as the entry point for non-JVM language bindings. TinkerPop is being used is production graph-based applications around the world and is only getting better with age.

D. Rationale

The graph computing space has grown over the years to encompass numerous graph database and graph processing systems. TinkerPop was created as a unifying framework for interoperability, language standardization, and data model standardization. This framework makes it simple to "plug and play" the back-end graph implementation without affecting the developer's code. This is analogous to the way in which the JDBC allows users to swap relational databases while keeping the same programming interface. TinkerPop also brings together OLTP systems (graph databases) and OLAP systems (graph processors) by providing a single query language (Gremlin) for executing graph algorithms transparently over either type of system. The seamless support of single-machine systems and distributed systems provides an identical end-user experience within the boundaries of the space and time constraints of the underlying graph system.

E. Initial Goals

The goal of this proposal is to migrate TinkerPop to The Apache Foundation to 1.) get more exposure to the project and 2.) legally protect the developers and contributors of TinkerPop.

F. Current Status

TinkerPop is planning to release TinkerPop 3.0.0.GA early 2015. We would like to release TinkerPop 3.0.0.GA under The Apache Foundation.

G. Meritocracy

Anyone is welcome to join TinkerPop as a contributor. If an individual provides beneficial pull requests, documentation updates, theoretical ideas, etc. then they are asked to join TinkerPop. Once inside TinkerPop, they are able to voice their opinions/thoughts on the direction of the project. Moreover, TinkerPop actively seeks vendors who leverage TinkerPop in their offering. Each vendor is allowed to place a representative on TinkerPop contributors who can speak on behalf of their organization as it relates to the requirements of their graph system. Every year or so, we list inactive members and request their permission to purge them from TinkerPop contributors mailing list. In this way, we try and keep the TinkerPop contributors list to the most active, participating members.

H. Community

There are 25 TinkerPop contributors which, of those, 12 are representatives from various graph system vendors in the market today. The TinkerPop mailing list has 1500+ subscribers with a flow of approximately 10 emails a day. Note that there are individuals that participate in the TinkerPop ecosystem by providing language bindings and system implementations. While not contributing to the core codebase per se, they support TinkerPop via their software and lecture outreach.

I. Core developers

The primary "day in and day out" developers are Marko A. Rodriguez and Stephen Mallette. Over the years, other individuals have come and gone from TinkerPop. Other significant long term contributors include Peter Neubauer, Joshua Shinavier, James Thornton, Matthias Bröcheler, Daniel Kuppitz, Bryn Cooke, and others.

J. Alignment

TinkerPop is licensed Apache2. The OLAP reference implementation that distributes with TinkerPop is based on Hadoop and Giraph. There has been a push from vendors and commercial organizations interested in ensuring TinkerPop has the legal support of a software foundation. We believe The Apache Foundation to be a great home for TinkerPop.

K. Known Risks & Abandoned projects

TinkerPop is currently at TinkerPop 3.0.0.M6. By joining The Apache Foundation, there is a significant amount of code and time that has passed since TinkerPop's inception. However, we have done our best to secure CLAs from contributors and to date, have not been involved in any legal or political issues. TinkerPop has 12 official graph vendors that maintain or support a TinkerPop implementation for their system. If, lets say, 75% of those vendors decide against providing a TinkerPop interface, then this would be detrimental to TinkerPop's efforts. With that, it is very important that TinkerPop remain neutral and engaged with vendors.

L. Inexperience with Open Source

The primary developers of TinkerPop have been providing TinkerPop code and releases open source and in full public view since 2009 via both our GitHub repository and our public mailing lists. We pride ourselves in professional software, documentation, and aesthetics. With its integration to numerous graph systems in the market, we see TinkerPop as a masterpiece in a open source technology --- working with both open source and commercial entities to ensure a solid, respected product.

M. Homogeneous Developers

The contributors to TinkerPop have varying levels of software engineering expertise and focus. The codebase is complex as it deals with numerous area of software engineering including: data standardization, programming language bindings, query language design, OLTP databases, OLAP processors, distributed computing, end-point services, extensibility via plugins, applied graph theory, etc. Over the years, we have gathered a pool of talent able to work at the requisite levels and as a whole, we have all grown as engineers.

N. Reliance on Salaried Developers

TinkerPop is open source and no individual is paid for their contributions except for our logo designer. All the logos and documentation graphics are released Apache2.

O. Relationships with Other Apache Projects

TinkerPop currently leverages Hadoop, Giraph, and in the near future, will integrate with Spark. Internally, the project leverages Maven3, Apache Configuration, and Apache Commons.

P. An Excessive Fascination with the Apache Brand

TinkerPop is interested in The Apache Foundation for the legal support and protection it can offer our developers, users, and vendors. Numerous large software organizations have urged TinkerPop to join a foundation so that they may more easily provide contributors from their organization and moreover, maintain confidence in building products atop TinkerPop. With that said, TinkerPop does respect The Apache Foundation brand and believes that by joining The Apache Foundation, we will further boost the recognition and prestige of our product. Finally, note that a TinkerPop book is slated for 2015. Combining The Apache Foundation and a long awaited book should ensure a new uptake of contributors, users, vendors, and promoters.

Q. Documentation

TinkerPop takes pride in its documentation:



JavaDoc (core)


JavaDoc (full)


R. Initial Source

TinkerPop is currently hosted on GitHub: https://github.com/tinkerpop/tinkerpop3.

S. Source & Intellectual Property Submission Plan

There are no known claims to violations of intellectual property. TinkerPop is not a legal entity, but instead, a loose group of developers. TinkerPop, as a name, has been in effect for this project since 2009 when Marko A. Rodriguez, Joshua Shinavier, and Peter Neubauer started TinkerPop. They are okay to transfer any rights to the name to The Apache Software Foundation.

T. External Dependencies

TinkerPop relies on open source software that is "equivalent" or less stringent than the Apache2 license.

U. Cryptography


V. Required Resources

The only resource we see moving forward and if Apache wishes, is to fund our logo designer when we need a logo. We currently spend about $500 a year on logos. Please look through our documentation to see how much we love giving character to our work. If this is not something that Apache can do, then we will continue funding the creation of our artwork as we have done in the past.

W. Mailing Lists

TinkerPop requests the following mailing lists:

  1. dev@tinkerpop.incubator.apache.org

  2. commits@tinkerpop.incubator.apache.org

  3. private@tinkerpop.incubator.apache.org

X. Subversion Directory

TinkerPop will use subversion for it’s website and requests:

Y. Git Repository

TinkerPop wishes to have the following created:

And to have all of these mirrored to Github with integration taken care of.

Z. Issue Tracking

TinkerPop uses GitHub's issue tracker for tracking issues: https://github.com/tinkerpop/tinkerpop3/issues. We wish to continue to use GitHub issue tracker, but if there is a strong push back, can move to JIRA.

AA. Initial Committers

We would like to keep the voting rights to 3 individuals: Marko A. Rodriguez (Aurelius), Stephen Mallette (Nidomics), and James Thornton (Electric Speed, LLC).

BB. Affiliations

Marko A. Rodriguez (2009)


Peter Neubauer (2009)


Joshua Shinavier (2009)

Rensselaer Polytechnic Institute

Ketrina Yim (2009)


Stephen Mallette (2011)


Pierre De Wilde (2011)


Derrick Wiebe (2011)


Luca Garulli (2012)

Orient Technologies

Matthias Bröcheler (2012)


Bryn Cooke (2013)


James Thornton (2013)

Electric Speed, LLC

Sridhar Ramachandran (2013)


Nicholas Quinn (2013)


Xavier Sanchez (2013)

Sparsity Technologies

Daniel Kuppitz (2014)


Michael Pollmeier (2014)


Jean-Baptiste Musso (2014)


Bob Briody (2014)


Mike Personick (2014)


Michael Hackstein (2014)


Michael McMahon (2014)


Ryan Webb (2014)

Johns Hopkins Applied Physics Laboratory

Avery Ching (2014)


Kendall Clark (2014)

Clark & Parsia

Michael Grove (2014)

Clark & Parsia

CC. Sponsors

We would like to have the following Apache champion and mentors:

  • Champion: David Nalley
  • Mentor: XXX, YYY, ZZZ, ...

TinkerPopProposal (last edited 2015-01-08 14:00:37 by MarkoRodriguez)