Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.
Jakarta NoSQL
The goal of this specification is to ease integration between Java® Applications and NoSQL databases, with a common API to work with different types and vendors of NoSQL databases.
To achieve this, the spec has two layers:
-
Communication API: Exactly what JDBC is to SQL. This API has four specializations, one for each type of database (column, document, key-value and graph). The specializations are independent of each other, optional from the point of the database vendor and have their specific TCKs.
-
Mapping API: What developers should use to integrate into a database. This layer is based on Annotations and CDI and preserves integration with other Jakarta EE technologies like Bean Validation, etc.
The guiding ideas for the project are:
-
Convention over configuration
-
Support for asynchronous queries
-
Support for asynchronous write operations
-
Easy to implement API, so that NoSQL vendors can comply with it and test by themselves.
-
The API's focus is on simplicity and ease of use. Developers should only have to know a minimal set of artifacts to work with the solution. The API is built on latest Java 8 features and therefore fit perfectly with the functional features of Java 8.
Jakarta NoSQL defines an API for common behavior to facilitate integration between Java® applications and NoSQL databases.
The Jakarta NoSQL project consists of the following modules:
-
Column Communication API and TCK
-
Document Communication API and TCK
-
Key-Value Communication API and TCK
-
Graph Communication API and TCK
-
Mapping API and TCK
Create the specification in Jakarta EE to help Jakarta EE developers create enterprise-grade applications using Java® and NoSQL technologies. It helps them create scalable applications while maintaining low coupling with the underlying NoSQL technology.
The development of the new API will use Eclipse JNoSQL as a starting point (first compatible implementation and inspiration for the APIs and TCKs):
This API has a huge value to the Jakarta EE developers as it will make easier to develop a modern and scalable application using NoSQL technology.
The main idea is a community-driven and releases every three months.
-
Milestone 1 - Graph Communication API and TCK
-
Milestone 2 - Column Communication API and TCK
-
Milestone 3 - Document Communication API and TCK
-
Milestone 4 - Key-Value Communication API and TCK
-
Milestone 5 - Mapping API and TCK
Community
-
SouJava
-
SouJava Campinas
-
SouJava Rio
-
JavaBahia
-
GuJavaSC
-
London Java Community
Individual
-
Gerald Sangudi
-
Prasad Varakur
-
Johan Larson
-
Luca Garulli
-
Werner Keil
-
Christoph Engelbert
-
Daniel Cunha
-
Dor Laor
-
Ondrej Mihályi
-
Jesse Gallagher
Company
-
CouchBase
-
Scylla DB
-
Orientdb
-
Jelastic
-
V2COM
The initial goals of the Jakarta NoSQL project are to:
-
Receive code donations from https://github.com/eclipse?q=jnosql
-
Setup the governance structure of the project
-
Ensure all donated code is appropriately licensed under the Apache License
-
Define the project modules and structure (API, implementation modules (initially for NoSQL databases, adapter modules, examples)
-
Provide examples demonstrating feature usage
-
Attract contributions from the greater Java community
Documentation
- Baeldung: https://www.baeldung.com/eclipse-jnosql
- More details about API: https://goo.gl/lUixCh
- Presentation about Eclipse JNoSQL: https://www.slideshare.net/otagonsan/eclipse-jnosql-the-definitive-solution-for-java-and-nosql-database
- Presentation Java One 2017: https://www.youtube.com/watch?v=W5Z8c37m-VM
- Site: http://www.jnosql.org/
- Publications: https://wiki.eclipse.org/JNoSQL/Publications
Links to some other existing solutions:
-
Spring Data http://projects.spring.io/spring-data/
-
Hibernate OGM: http://hibernate.org/ogm/
-
Eclipselink: http://www.eclipse.org/eclipselink/
-
Jdbc-json https://github.com/jdbc-json/jdbc-cb
-
Tinkerpop http://tinkerpop.apache.org/
Databases
- ArangoDB https://www.arangodb.com/
- Blazegraph https://www.blazegraph.com/
- Cassandra http://cassandra.apache.org/
- CosmosDB https://docs.microsoft.com/en-us/azure/cosmos-db/introduction
- Couchbase https://www.couchbase.com/
- Elastic Search https://www.elastic.co/
- Vaticle https://vaticle.com/
- Hazelcast https://hazelcast.com/
- Hbase https://hbase.apache.org/
- Infinispan http://infinispan.org/
- JanusGraph IBM https://www.ibm.com/cloud/compose/janusgraph
- Janusgraph http://janusgraph.org/
- Linkurio https://linkurio.us/
- Keylines https://cambridge-intelligence.com/keylines/
- MongoDB https://www.mongodb.com/
- Neo4J https://neo4j.com/
- OriendDB https://orientdb.com/why-orientdb/
- RavenDB https://ravendb.net/
- Redis https://redis.io/
- Riak http://basho.com/
- Scylladb https://www.scylladb.com/
- Log in to post comments
- Log in to post comments