Why DataNucleus ?

Choosing a Java data management platform will come down to your requirements in terms of cost, functionality, support, etc.

  • DataNucleus is Open Source, meaning that you have full access to the source code for all versions of DataNucleus. With this you have the capability to correct any errors that you encounter, but also better understand the data management process, and you can potentially extend DataNucleus to suit your needs.
  • DataNucleus is free. Our license is the Apache 2 license, providing the code and executables (JARs) free of charge. You are free to use DataNucleus in your projects. Please refer to the license for the precise wording. DataNucleus will always remain Open Source. Our license (Apache 2) is very flexible, much more than the license used for some other notable object/relational mapping software which use licenses like the LGPL.
  • DataNucleus is independent and unstoppable. The source code is open, and is not owned exclusively by some company. As such it cannot be bought by a large organisation such as Versant or Oracle and the product terminated (as has happened to customers of Kodo, JDO Genie over the last few years) - do you want that to happen to you? FYI EclipseLink is Oracle-driven, OpenJPA is IBM-driven and Hibernate is RedHat-driven
  • DataNucleus is standards driven and standards compliant implementing JDO1, JDO2, JDO2.1, JDO2.2, JDO3, JPA1, and JPA2 providing all mandatory items and the majority of optional items as well as providing several value-added extensions. Standards compliance safeguards your applications future allowing you to swap between implementations.
  • DataNucleus supports data management for many different types of datastores. These include the vast majority of RDBMS databases on the market today, MongoDB document store, LDAP and other datastores meaning that if you change your datastore in the future you don't need to change your data access layer.
  • DataNucleus provides outstanding performance when compared with the competing technologies.
  • DataNucleus does not bring in large numbers of dependencies unlike other persistence frameworks (for example, Hibernate) that have to provide a zip file just to package all of their requirements up. In fact DataNucleus could be run with just 1 third-party library (jdo-api.jar) - beat that!
  • DataNucleus is quality-driven being developed using a Test Driven Development methodology. We have more than 2000 unit tests that are run before any release guaranteeing a stable product. In addition we baseline our capabilities against standard Java TCKs (JDO, JPA) - the definition of specification compliance. In our issue tracker you will not find large numbers of outstanding high priority items that you have to workaround (unlike what you find in the Hibernate, OpenJPA, EclipseLink issue trackers for example)
  • DataNucleus provides a level of free support by way of an online forum and also provides commercial support arrangements if you require it.
  • DataNucleus consulting and training can be arranged with the developers of DataNucleus.
  • DataNucleus is open to contributions/donations allowing individuals to help out and allowing companies to sponsor features that they require for their deployments of DataNucleus.
  • DataNucleus is plugin-driven using the OSGi standard mechanism, providing plugins to external caching software (Coherence, EHCache, etc), to external database-pooling software (DBCP, C3P0, etc), and much more.

DataNucleus Philosophy

At DataNucleus we have the following philosophy.

  • Power : the user should be in control of their data. DataNucleus should empower them
  • Persist Anywhere : data should be persistable to any datastore required. DataNucleus should support all datastores, or at the very least provide a mechanism whereby all can easily be supported
  • Flexibility : the user should be able to choose the API they wish. DataNucleus should support all standardised APIs in the problem domain.
  • Right tool for the job : the user should be able to choose the right query language or right datastore depending on the capabilities of that component. DataNucleus should not limit their choice
  • Configurability : the user should be able to utilise whatever components are best suited to the task. DataNucleus should provide a framework whereby all components can be utilised.
  • Performance : data processing should be efficient. DataNucleus should aim for optimum performance wherever possible with the enabled features and allow all non-essential features to be disabled to obtain this performance