Hi,
A while back (in March) I asked for help/feedback in defining a new API for the 
riak-java-client[1].  Last week I merged a branch to master of the basho 
riak-java-client repo[2] with that new API.

Defining an API is hard. I like Joshua Bloch's advice:

    "You can't please everyone so aim to displease everyone equally."

Well, I didn't *aim* to displease anyone, but if you don't like fluent APIs and 
builders, you're not going to like this ;)

I had two aims with this re-work

1. A common API for the different transports (HTTP/PB)
2. A set of strategies for dealing with fault tolerant, eventually consistent 
databases at the client layer

The bulk of the inspiration for the latter aim came from this talk[3] by Coda 
Hale and Ryan Kennedy of Yammer (and some follow up emails) as well as from 
emails and advice on this list (from Kresten Krab and Jon Brisbin (amongst 
others.)) The team at Basho have been brilliant and very patient answering all 
my questions about the workings of Riak and the best way for the client to 
behave in a given situation. And Mathias Meyer is the best remote/IM rubber 
duck[4] in the world. 

That said, the implementation (and mistakes) are mainly mine. Please have a 
look at the new README, pull the code and play with it. There are some rough 
edges, and I have a long TODO list of tidying and extra features, so if you 
find a bug, need a feature or have any feedback at all please get in touch, or 
even fork the project and send a pull request ;)

Cheers

Russell

[1] - 
http://lists.basho.com/pipermail/riak-users_lists.basho.com/2011-March/003599.html
[2] - https://github.com/basho/riak-java-client
[3] - http://blog.basho.com/2011/03/28/Riak-and-Scala-at-Yammer/ (if you 
haven't watched this yet, please do.)
[4] - http://c2.com/cgi/wiki?RubberDucking

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to