riak java client review (was Re: Riak Recap for March 14 - 15)

Russell Brown russell.brown at mac.com
Thu Mar 17 09:37:44 EDT 2011

On 17 Mar 2011, at 12:30, Jon Brisbin wrote:

> On Mar 16, 2011, at 6:39 PM, Mark Phillips wrote:
>> 3) Mark Wolfe put together some thoughtful observations about Riak and
>> the Java Client. This is a great read.
>> * Check them out here --->
>> https://github.com/wolfeidau/riak-log4j-appender/blob/master/docs/riakclient_review_ideas.md
> Addressing these issues was exactly the reason I wrote the Spring Data support for Riak--though it doesn't address all the points raised in the way suggested. I wanted to make Riak support a first-class component alongside my other Spring components, so naturally I used the tools already available in Spring like the RestTemplate and the Jackson-based JSON HttpMessageConverter.

Mark Wolfe's comments are astute and certainly timely. I'm refactoring the existing Riak Java Client to provide both a more intuitive/idiomatic Java API and an SPI so that the underlying transport (REST, Protobufs, whatever the future holds) is pluggable. Using **insert current best choice** to talk to Riak should be independent of the API for using Riak. I don't think the users of the API need know anything about REST, HTTP, Protobufs, JSON or any of those implementation details. 

Of course the hard part is getting there from here. There is an installed user base who have code invested in the current client and API, so throwing out the baby with the bath water is not an option. The process is to create a new API and adapt the old API to use it, deprecating the worst cases of abstraction leakage first to speed the transition between versions. The initial transport implementations will re-use (as much as sensible) the existing Http and protobufs code. Longer term I hope we are able add Jersey or restlet or Netty transports so you can pick the one(s) most suited to your needs.

Diversity is a boon for any platform, and projects like the Spring Data Key-Value integration for Riak are welcome participants and very much appreciated.

I liked Mark's shout out to Ripple since that project sets the standard I'd like the Java Client to meet. Mark's comments are a great start to the discussion about the future of the Riak Java client (thanks Mark), I hope you all weigh in.



> The Spring Data support for Riak is the basis upon which the Grails GORM support is built:
> http://bit.ly/h59peU 
> Thanks!
> Jon Brisbin
> http://jbrisbin.com
> Twitter: @j_brisbin
> _______________________________________________
> riak-users mailing list
> riak-users at lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20110317/6317e355/attachment.html>

More information about the riak-users mailing list