Skip to main content
  • Log in
  • Manage Cookies
projects.eclipse.org
Download
  • Projects
  • Working Groups
  • Members
  • Community
    • Marketplace
    • Events
    • Planet Eclipse
    • Newsletter
    • Videos
    • Blogs
  • Participate
    • Report a Bug
    • Forums
    • Mailing Lists
    • Wiki
    • IRC
    • Research
  • Eclipse IDE
    • Download
    • Learn More
    • Documentation
    • Getting Started / Support
    • How to Contribute
    • IDE and Tools
    • Newcomer Forum
  • More
      • Community

      • Marketplace
      • Events
      • Planet Eclipse
      • Newsletter
      • Videos
      • Blogs
      • Participate

      • Report a Bug
      • Forums
      • Mailing Lists
      • Wiki
      • IRC
      • Research
      • Eclipse IDE

      • Download
      • Learn More
      • Documentation
      • Getting Started / Support
      • How to Contribute
      • IDE and Tools
      • Newcomer Forum
    • Search

  1. Home
  2. Projects
  3. Eclipse EE4J
  4. Jakarta NoSQL
  5. Jakarta NoSQL
×

Informative message

This proposal has been approved and the Jakarta NoSQL project has been created.
Visit the project page for the latest information and development.

Go to Project

Jakarta NoSQL

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Eclipse EE4J
Background: 

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.

Scope: 

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

Description: 

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):

  • https://www.eclipse.org/community/eclipse_newsletter/2018/april/jnosql.php

  • https://www.baeldung.com/eclipse-jnosql

 

Why Here?: 

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.

Licenses: 
Eclipse Public License 2.0
一 (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception
Project Scheduling: 

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

People
Project Leads: 
Otavio Santana
Committers: 
Daniel Cunha
Ivan Junckes Filho
Jesse Gallagher
Leonardo de Moura Rocha Lima
Lucas Furlaneto
Andres Galante
Werner Keil
Nathan Rauh
Fred Rowe
Otavio Santana
Mentors: 
Wayne Beaton
Interested Parties: 

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

Source Code
Initial Contribution: 

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

  • Simba http://www.simba.com/drivers/

  • 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/
Source Repository Type: 
GitHub
Source Repositories: 
https://github.com/JNOSQL/jnosql-specification
  • Sign in to post comments.
Incubating - Jakarta NoSQL

Related Projects

Related Projects:

  • Eclipse Technology
    • Eclipse JNoSQL

Project Hierarchy:

  • Eclipse EE4J
  • Jakarta NoSQL

Tags

Technology Types
  • Cloud Native Java
  • Specification
Other Tags
  • NoSQL

Eclipse Foundation

  • About Us
  • Contact Us
  • Sponsor
  • Members
  • Governance
  • Code of Conduct
  • Logo and Artwork
  • Board of Directors
  • Careers

Legal

  • Privacy Policy
  • Terms of Use
  • Copyright Agent
  • Eclipse Public License
  • Legal Resources

Useful Links

  • Report a Bug
  • Documentation
  • How to Contribute
  • Mailing Lists
  • Forums
  • Marketplace

Other

  • IDE and Tools
  • Projects
  • Working Groups
  • Research@Eclipse
  • Report a Vulnerability
  • Service Status

Copyright © Eclipse Foundation. All Rights Reserved.

Back to the top