HEP 4 - Spring Data Integration Phase 1 (commons)

General Proposal Information

HEP: 4
Title: Spring Data Integration Phase 1 (commons)
HEP Shortname: Spring Data Integrations Commons
Author: Neil Stevenson (neil.stevenson_AT_em-chips_DOT_co_DOT_uk)
Sponsor: 
Signed-Of: 
Lead: Neil Stevenson
Created: 2015/04/05
Status: Draft
Type: Feature
Component: Integration
Discussion:  https://gitter.im/hazelcast-incubator/spring-data-integrations-commons
Specification: 
Project:  https://github.com/hazelcast-incubator/spring-data-integrations-commons 

Process Information

Start: 2015/Q2 
Depends:
Effort: L
Duration: L
Release: - (not yet defined)

Summary

A first phase implementation for Spring Data Integration into Hazelcast, implementing "commons" features.

Goals

Implement Spring Data "commons" functionality for Hazelcast:

  • The @Repository interace

  • Querying

Non-Goals

Exposing advanced Hazelcast specific features via Spring.


Motivation

The Spring platform is a commonly used environment, therefore it is natural to provide a way to use Hazelcast via Spring in a standard, platform neutral manner and to provide a baseline implementation of Spring Data Hazelcast that can be enhanced in the future with Hazelcast specific features.

 Success Metrics

Success would be defined by a test pack that could be run once with a Hazelcast implementation using @Repository and querying features, then repeated using a non-Hazelcast implementation to obtain the same results, to prove the platform neutrality of the implementation.

Description

Spring Data projects exist for other implementations, and should also for Hazelcast.

As this is a significant volume of work, the proposal here is for a first phase ("commons") to implement the platform neutral features -- the @Repository and querying interface.

Making Hazelcast specific features available via Spring would not be part of this scope, and would rely on later phase(s) to deliver.

Testing

Testing should be possible via spring-test, using mocking for unit tests and spinning up a cluster for integration tests.

Risks

Both Spring and Hazelcast are under continuous development. If this module slips behind in maintenance, it will stop being actively used.

Dependencies