Giter Club home page Giter Club logo

jnosql-book's Introduction

JNOSQL

The JNoSQL is a several tools to make easy integration between the Java Application with the NoSQL. The project has two layers:

  • Communication API: An API just to communicate with the database, exactly what JDBC does to SQL. This API has four specializations, one for each kind of database.
  • Mapping API: An API to do integration and do the best integration with the Java developer. It's annotation driven and integrated with other technologies like Bean Validation, etc.

The basic building blocks hereby are:

  • A simple API to support Column NoSQL Database
  • A simple API to support Key-value NoSQL Database
  • A simple API to support Graph NoSQL Database
  • A simple API to support Document Database
  • Convention over configuration
  • Support for asynchronous queries
  • Support for asynchronous write operations
  • An easy API to implement, 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.

Diana

The Diana Project has as the goal just be the flat layer, in other words, just the communication layer to NoSQL database. This project works as a database driver. Diana has four APIs, one for each database type, and its TCK respective. The test compatibility kit affirms if a driver implements an API correctively. So an X database of key-value implements and run all tests correctively that means this X database has support to key-value Diana API.

Furthermore Diana will notbe:

  • A new API to replace JPA
  • A new API to mapping layer
  • Just one API communication to solve all kind of NoSQL database
  • Be responsible for doing integrations with other technologies such as CDI, EJB, Bean Validation, Spring, etc.

Artemis

Artemis is an integration layer, in other words, it has the goal to communicate with the communication layer, Diana, and it does integrations with other technologies such as Bean Validation. The Artemis engine has CDI. So it formula is really simple:

Diana plus CDI equals to Artemis

Look like Diana; it has a different package to each NoSQL database. Using CDI as heart, Artemis is highly customizable also observe events on the persistence flow. Artemis has a nice feature such as:

  • Annotation based
  • Highly customizable \(reflection component, how to save the cache, persistence workflow, etc.\)
  • Listen to an event to each kind of persistence workflow \(it has differents kind of events to each database\).
  • Use interceptors

Using CDI events to add a new feature on Artemis is easy and you also can it on transparency way, you don't need to change the repositories. E.g., Using events can add bean validation on the workflow, without the DAO layer know.

jnosql-book's People

Contributors

otaviojava avatar daniloandrade avatar ivanjunckes avatar furlaneto avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.