Logo os JNoSQL: image of Duke, Java's cartoon mascot, with a bow and arrow pointing to the right

The Eclipse JNoSQL is a framework with the goal to help developers in creating enterprise-ready applications using Java and NoSQL technologies. It enables them to create scalable applications while maintaining low coupling with the underlying NoSQL technology.

View on GitHub

What is Eclipse JNoSQL?

Eclipse JNoSQL is a Java framework that streamlines the integration of a Java application with the NoSQL database. It defines a set of APIs to interact with the NoSQL database and provides a standard implementation for most NoSQL databases. This clearly helps to achieve very low coupling with the underlying NoSQL technologies used in applications.

The project has two layers:

  • Communication API: These are set of APIs that define communication with NoSQL database. In traditional RDBMS world, these can be compared with JDBC APIs. This API set contains four modules with each one representing a NoSQL database storage type like Key-Value pair, Column Family etc.
  • Mapping API: These are the APIs that help developers to integrate Java application with NoSQL database. This layer is annotation driven and uses technologies like CDI and Bean Validations to make it simpler for the developer. In traditional RDBMS world, this layer can be compared to JPA or ORM frameworks.

Some of the important features are:

  • Simple APIs supporting all well known NoSQL storage types - Column Family, Key-Value Pair, Graph and Document databases.
  • Use of Convention over configuration
  • Support for Asynchronous Queries
  • Support for Asynchronous Write operations
  • Easy API Specification and TCK for NoSQL Vendors

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.

Eclipse JNoSQL - Diana

The Eclipse JNoSQL - Diana project defines the standard APIs to communicate with NoSQL databases. Basically, this project works as a NoSQL Database jDriver.

Diana has four APIs, one for each NoSQL database storage type, and TCK for each one. The Test Compatibility Kit (TCK) helps to ensure that driver implementation adheres to API specifications. So a X database of key-value implements and run all tests correctively that means this X database has support to key-value Diana API.

Eclipse JNoSQL - Artemis

The Eclipse JNoSQL - Artemis project is an integration layer that helps developers to integrate applications with Diana. The Artemis layer uses technologies such as Bean Validations and incorporates CDI capabilities, making integrations very simple and effective. In other words, Artemis can be thought as -

Diana + CDI = Artemis

Similar to Diana, Artemis also has separate modules for all well known NoSQL Database Store types. With CDI at its heart, Artemis becomes a very powerful, yet simple framework.

Some of the important features of Artemis are:

  • Annotation Driven.
  • Highly Customizable (reflection component, how to save the cache, persistence workflow, etc.)
  • Observable events on the persistence flow (Every Artemis module has its own set of events)
  • Support to use Interceptors
  • Use CDI events to inject behaviors and validations in the workflow

Supported NoSQL Databases

Currently, Eclipse JNoSQL proudly supports following NoSQL database and List is continuously growing:

  • logo tinkerpop
  • logo ArangoDB
  • logo cosmo db
  • logo basho
  • logo Blazegraph
  • logo cassandra
  • logo couchbase
  • logo DataStax
  • logo elastic
  • logo graknai
  • logo hazelcast
  • logo hbase
  • logo ibmgraph
  • logo infinispan
  • logo janusgraph
  • logo keylines
  • logo linkurios
  • logo mongodb
  • logo neo4j
  • logo oracle
  • logo orientdb
  • logo redis
  • logo riak
  • logo scylla
  • logo stardog
  • logo titan
  • logo tomsawyer