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