This is a proposal for GSoC2013: create an Resource Provider that allows resources stored in Elastic Search to be exposed as Sling Resources.
Resources are the basic building blocks of Sling.
ResourceProviders allow data sources to be added to the core ResourceProvider within Sling allowing those data sources to provide Resources at pre-determined locations in the resource tree. To put it in more familiar terms, implementing and adding a Resource provider is like mounting or mapping a network drive.
A more recent addition to the facilities available in Sling include updatable ResourceProviders.
Elastic Search is a elastically scalable search engine based on Lucene that has NoSQL like storage capabilities. Although written in Java, and used by many Java applications, it is used by a multitude of scripting communities (Python, Ruby, Php) as it exposes a RESTfull Json interface. Its NoSQL like capabilities are supported by the ability to index in real time over multiple shards and replicas. Notable users of Elastic Search include Wordpress, GitHub, FourSquare, Sony and many others.
Initially this will provide read only resource access, but if there is time in the project will allow read write access to a Elastic Search cluster.
Advanced Java skills are required, some knowledge of OSGi, Sling, Elastic Search will be valuable as will a detailed knowledge of HTTP and RESTfull architectures.
The following pages give more information about GSoC @apache: