JNoSQL and Jakarta EE
The Enterprise Java platform has been evolving steadily since 1999 when it was first introduced as Java 2, Enterprise Edition. Today, Enterprise Java is being standardized under the Eclipse Foundation with the new brand, Jakarta EE. Jakarta EE picks up where Java EE 8 left off, but the roadmap going forward will be focused on modern innovations such as microservices, modularity, and, now, NoSQL databases.
The JNoSQL project, of which I'm a part, is excited to announce that it will be the first new standardization project to be adopted by Jakarta EE providing a robust and vendor agnostic API that will allow any Jakarta EE implementation to seamlessly integrate with most NoSQL databases.
What is NoSQL?
The NoSQL databases are a new approach to data persistence that goes beyond relational database. NoSQL databases offer both performance and scalability that is often better suited to today's dynamic and large-scale data storage and access needs. A particularly good article to get you started with NoSQL databases is available here.
NoSQL databases have grown quickly in popularity and have been used extensively in a number of industries including finance. According to the DB-Engine ranking, four of the ten databases listed are NoSQL. Today there are more than two hundred and twenty-five NoSQL databases to choose from.
Java EE and NoSQL
The rapid adoption of NoSQL combined with the vast assortment of implementations has driven a desire to create a set of standardized APIs. In the Java world, this was initially proposed in an effort by Oracle to define a NoSQL API for Java EE 9. The justification for the definition of a new API, separate form JDBC, and JPA was the following.
- JPA was not designed with NoSQL in mind.
- A single set of APIs or annotations isn't adequate for all database types.
- JPA over NoSQL implies the inconsistent use of annotations.
- The diversity in the NoSQL world matters.
Unfortunately, the Oracle proposal for Java EE 9 was not completed when Java EE was donated to the Eclipse Foundation.
Jakarta EE and NoSQL
To bring the NoSQL innovation to the Jakarta EE platform, the Eclipse Foundation's JNoSQL project will be the foundation of a new standardized Java API for NoSQL databases. The goals for the JNoSQL project is to be the foundation for the definition a Java-based NoSQL API standard that enables Jakarta EE platforms to:
- Support the four NoSQL types (key-value, column family, document and Graph)
- Implement a Java NoSQL communication API (analogous to JDBC) for each storage category - the Graph it will use Apache Tinkerpop
- Provide a Mapping API (analogous to JPA) for each supported type, with a shared set of annotations.
- Define a standard set of annotations that are useful across both communication and mapping APIs.
To learn more about Eclipse JNoSQL, click the link of this article.
The adoption of JNoSQL as the foundation of the first new standard added to the Jakarta EE platform demonstrates the Eclipse Foundation's commitment to the modernization of Enterprise Java. The JNoSQL project looks forward to contributing to the Jakarta EE platform and working with the new Jakarta EE Working Group to integrate and standardize JNoSQL as an API for NoSQL databases.