|Subject:||[jr3] Release roadmap|
|From:||Jukka Zitting (jukk...@gmail.com)|
|Date:||Feb 23, 2012 6:14:59 am|
As a followup to the strategic plan proposal, and to help turn our focus from abstract planning to actual deliverables, here's a quick draft roadmap for possible releases we could/should be making still in H1/2012. It's still necessarily incomplete (for example I excluded query and indexing features for now as I don't yet have a good idea of when or how they should be addressed), but I think a roadmap like this should help us focus on the right things at the right time.
For example, IMHO agreeing on the clustering model and getting a basic implementation in place is a fundamental decision that needs to be done as early as possible (by April in this draft), followed soon by merging of concurrent CRUD operations. Only after we have those in place can we start making solid decisions about higher-level features. This doesn't mean that we shouldn't take such features into account when designing and implementing the clustering model, just that we shouldn't start implementing them before the basics are in place.
This is a pretty tight schedule mostly to bring up a sense of focus that we currently seem to be lacking. The proposed schedule should be reachable with a few persons working full time on this, which I think (and hope) we should be able to arrange. And it's more of a guideline than a fixed plan, we can proceed faster on some issues if possible or postpone others where needed. We may even decide to drop some items entirely or introduce new items to the plan.
With that background, here's the proposed roadmap:
* 0.1 - March 2012 * Basic JCR and HTTP interfaces (Hello, World!) * In-memory storage (no-need for persistence yet) * Runnable jar for easy deployment * Integration tests to verify the above
* 0.2 - April 2012 * Basic CRUD operations over JCR and HTTP * Extension model for plugging in alternative storage backends * Basic on-disk or in-cloud persistence (no performance or stability goals yet) * Clustering model that supports the above CRUD operations * Runnable jar with "join cluster" functionality * Integration tests to verify the above
* 0.4 - June 2012 * Bindings for jQuery * WebDAV(ex)-based remoting * Support for all JSON and JCR data types, including multivalued properties * Basic support for flat hierarchies (no performance goals yet) * Basic support for access control based on the extension model * Basic support for node types based on the extension model * Basic support for observation based on the extension model * Basic support for locking (if needed/wanted) * OSGi/Spring/etc. pluggability of extensions * Integration tests to verify the above * Performance benchmark against selected other NoSQL databases * Performance tests for clustered deployments * Basic scalability tests for simple read and write scenarios