It is kind of a shame though. Riak has awesome features, but some of them (e.g. secondary indexes) are hard to use and documentation is somewhat missing.
If you look at the official clients page (http://wiki.basho.com/Client-Libraries.html#Ruby), you can see ripple (https://github.com/seancribbs/ripple) but the page doesn't mention riak-ruby-client (https://github.com/basho/riak-ruby-client) which was split from ripple some time ago.
In theory, both of them support secondary indexes as far as I can tell, but you won't find that feature in either readme. There are some specs available that somehow describe parts of it though. I still don't see clearly how I could search secondary indexes from either library.
The same goes for things like data vs raw_data and serializers (small discussion: https://github.com/basho/riak-ruby-client/pull/19). While there is a very informative screencast in Seans blog, there is no mention in the readme file.
mutator.setColumnOrSuperColumn( ... )
mutationsMap = new HashMap<ByteBuffer, Map<String, List<Mutation>>>()..
compound column..
super compound family of super columns...
where it feels more of a senior project, rather than something simple as: curl POST '{"red":2, "blue":4}' http://127.0.0.1:8091/riak/laundry/shirts
Although CQL fixes some of the problems with Cassandra complexity [Thrift does not even sound good in all 3 languages I know], I still believe it will be far more "desirable" (as the real http://en.wikipedia.org/wiki/Cassandra was) if more forces are applied to simplicity and polish.Also: Setting up the Schema changes quite a bit since 0.7 and that was always kinda annoying. Nothing that is really that big of a problem, but it feels like I have to change the code every minor version since 0.7. (note that they didn't set up a schema in the screencast and the cluster that got started is pretty useless, isn't it?)
"Riak is an open source, highly scalable, fault-tolerant distributed database."
Dealing with sharding + replica sets is an administrative nightmare with Mongo.
Well, that's the filter I use when looking at anything. If its not written in erlang I spend a lot of time trying to figure out exactly how it isn't really actually a distributed system. Usually I find out that it isn't.
I really liked the introduction of Snappy to CouchDB, especially for EC2 machines with their usually slow IO
It is really impressive how far Riak has come in the last year.
I don't think anything compares to it, and I think it should have an order of magnitude more interest and users. (I think people just get scared off by "erlang", which is silly.)
http://basho.com/blog/technical/2012/01/30/Riak-in-Productio...