AGE is a multi-model database that enables graph and relational models built on PostgreSQL.
We are proposing the AGE to the Apache foundation. AGE purpose is to provide an extension for PostgreSQL to give the users the ability to leverage graph database on top of the existing relational database with minimal effort. The basic principle of the project is to create single storage that can handle both relational and graph model data so that the users can use the standard ANSI SQL along with openCypher (http://www.opencypher.org), the Graph query language.
To provide some background, the AGE project is being actively developed. This project is a new generation of a multi-model graph database for the modern complex data environment. A graph database can solve problems through new perspectives, thanks to its different approach to data and its organization. By preparing data in graph models the users can apply graph algorithms that provide forte in handling complexity. Moreover, Graph data is a suitable form to apply machine learning.
Prior to AGE, there was an existing forked project which is publicly available as an open-source on the following link: https://github.com/bitnine-oss/agensgraph
While working on the fork version of this project, we found out that there are increasing voices asking for an extension of AgensGraph. It was then when we decided to develop and work on the extension version to provide more benefits to PostgreSQL users such as easy installation and compatibility.
AGE is a multi-model database designed to be simple and user-friendly, which supports the relational and graph data model at the same time that enables users to integrate the legacy relational data model and the flexible graph data model in one database. AGE supports ANSI-SQL and openCypher (http://www.opencypher.org). SQL queries and Cypher queries can be integrated into a single query in AGE.
Currently, we have active users and contributors that forked and used this project to build other projects. Some examples could be found in the following links:
AgensGraph mainly offers a multimodel database, eliminating the migration efforts while having relational and graph models.
There is a strong need for a cohesive, easy to implement multimodel databases. AGE is an extension of PostgreSQL which supports all the functionalities and features of the PostgreSQL and offers a graph model in addition. Users with a relational background and data model who are in need of having a graph model on top of their existing relational model can use this extension with minimal effort because they can use existing data without migration to enable graph database.
Since AGE is based on the powerful PostgreSQL RDBMS, it is very robust and fully-featured. AGE is optimized for handling complex connected graph data and provides plenty of powerful database features essential to the database environment including ACID transactions, multi-version concurrency control, stored procedure, triggers, constraints, sophisticated monitoring and a flexible data model (JSON). Moreover, AGE leverages the rich eco-systems of PostgreSQL and can be extended with many outstanding external modules, like PostGIS.
After V0.1.0 release our initial goals are to complete implementation of openCypher language specification in a PostgreSQL extension:
- Implementation of openCypher parser
- Implementation of internal AgensGraph Data Types
- Implementation of expression logic
- Implementation of Cypher language Clauses (Return, Create, Delete, Update, Match)
- Implementation of variable length expressions (VLE)
- Implementation of graph-related functions (such as aggregation)
Our current practices align with the meritocracy principles of Apache. AGE was originally created by Junseok Yang in June 2019. Committers have the freedom to work on a task independently and consult any other member of the team when necessary. Once committers have finished, a git patch is submitted to review and when the group approves the patch, it is committed to the master branch.
AgensGraph has been building a community since 2017. Our hope is to transition to the community that we have there to the AGE.
Junseok Yang (email@example.com ),
John Gemignani (firstname.lastname@example.org ),
Josh Innis (email@example.com )
AGE is compatible with many other projects such as MADlib since it's built on PostgreSQL.
The core developers of the AGE team plan to work full time on this project. There is a slim risk of orphaned or abandoned code since the AgensGraph(fork) project is an open-source project and has been forked nearly 90 times which decreases the chance of being orphaned. We plan to extend and diversify this community further through Apache.
Inexperience with Open Source:
The core developers are all active users and followers of open source. They are already committers and contributors to the AgensGraph(fork and extension) Github project. All have been involved with the source code that has been released under an open-source license, and several of them also have experience developing code in an open-source environment. Though the core set of developers does not have Apache Open Source experience, there are plans to onboard individuals with Apache open source experience on to the project.
The current list of committers includes developers from several different countries. The core committers are geographically distributed across the U.S., Europe, and Asia. They are experienced with working in a distributed environment.
Reliance on Salaried Developers:
Bitnine invested in AGE and some of its key engineers are working full time on the project. In addition, since there is a growing graph database need, we look forward to other Apache developers and researchers to contribute to this project.
Relationships with Other Apache Products:
- openCypher : It is built on PostgreSQL implementing openCypher which complies Apache License 2.0
- Hadoop Foreign Data Wrapper: It is built on PostgreSQL and compiles both Apache License 2.0 and PostgreSQL License.
An Excessive Fascination with the Apache Brand:
AGE is proposing to enter incubation at Apache in order to help efforts to diversify the committer-base and to give back to the community. The goal of this proposal is not to capitalize on the Apache brand but to give back more specifically to the Apache community.
We already appeared in many reviews including in the IDC report as a top 4 multimodel DBS and we are getting well known so there is no need for more market recognition.
Currently, the main documentation of the project is contained in the README.md in the source repository. More information on AGE can be found at https://sway.office.com/8zMnvFUaDihVADUu?ref=Link
AGE has been under development since 2019 by a team of engineers at Bitnine Inc. It is currently hosted on Github.com under an Apache license.
Source and Intellectual Property Submission Plan
The current license is already Apache Software License 2.0.
AGE has the following external dependencies:
- PostgreSQL (PostgreSQL License)
- PostgreSQL is released under the PostgreSQL License, a liberal Open Source license, similar to the BSD or MIT licenses. (https://www.postgresql.org/about/licence/)
- openCypher (Apache license 2.0)
The project currently does not handle cryptography.
- firstname.lastname@example.org (with moderated subscriptions)
Slack Channel: agensgraph_extension_asf
Git is the preferred source control system: git://git.apache.org/incubator-agensgraph
JIRA AgensGraph(AgensGraph). If required, we could use the Apache gitbox integration to sync Github & Apache infrastructure, and rely on Github issues & pull requests for community engagement.
Initial Committers & Affiliation
Junseok Yang (jsyang at bitnine dot net )
Josh Innis (josh dot innis at bitnine dot net )
John Gemignani (john dot gemignani at bitnine dot net )
Jasper Blues (jasper at liberation dash data dot com)
Aaron Genovia (aarongenovia at gmail dot com)
Mason Sharp(mason dot sharp at gmail dot com)
Eya Badal Abdisho(eya dot abdisho at bitnine dot net)
We kindly request the Apache Incubator PMC to be the sponsor for this project.
We are requesting the Incubator to sponsor this project.