Intro to Spring Data
The spring-data project offer abstraction and unified data access for variety of data sources.
|Relational Databases||JPA||Spring Data JPA – Simplifies the development of creating a JPA-based data access layer|
|JDBC Extensions||Support for Oracle RAC, Advanced Queuing, and Advanced datatypes. Support for using QueryDSL with JdbcTemplate.|
|Big Data||Apache Hadoop||The Apache Hadoop project is an open-source implementation of frameworks for reliable, scalable, distributed computing and data storage.|
|Data-Grid||GemFire||VMware vFabric GemFire is a distributed data management platform providing dynamic scalability, high performance, and database-like persistence. It blends advanced techniques like replication, partitioning, data-aware routing, and continuous querying.|
|HTTP||REST||Spring Data REST – Perform CRUD operations of your persistence model using HTTP and Spring Data Repositories.|
|Key Value Stores||Redis||Redis is an open source, advanced key-value store.|
|Document Stores||MongoDB||MongoDB is a scalable, high-performance, open source, document-oriented database.|
|Graph Databases||Neo4j||Neo4j is a graph database, a fully transactional database that stores data structured as graphs.|
|Column Stores||HBase||Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google’ Bigtable. HBase functionality is part of the Spring for Apache Hadoop project.|
|Common Infrastructure||Commons||Provides shared infrastructure for use across various data access projects. General support for cross-database persistence is located here|
The abstraction and standardization will allow developer to easily swap out technology specific implementations at data access layer, as well accessing data from multiple databases through cross-store. With the emergence of NoSQL technology, this has become extremely useful feature since there are really no standards and interoperability between these different technology. In addition, depending on the specific query in question, it might be a good idea to executed Neo4J, a graphical database, than MongoDB, a document based storage. It is not uncommon to see application that utilizes multiple database solution to optimize for all possible queries pattern.