Update on this: someone just pointed me towards the Cequel gem: https://github.com/brewster/cequel
The way it's described in the readme it looks like exactly what I was looking for - a modern, CQL-based gem that is in active development and also follows the ActiveModel pattern. I'd be very interested to hear if anybody has used this, whether it's stable/reliable, etc. Thanks. Harry On 2 August 2012 00:31, Thorsten von Eicken <t...@rightscale.com> wrote: > Harry, we're in a similar situation and are starting to work out our own > ruby client. The biggest issue is that it doesn't make much sense to build > a higher level abstraction on anything other than CQL3, given where things > are headed. At least this is our opinion. > At the same time, CQL3 is just barely becoming usable and still seems > rather deficient in wide-row usage. The tricky part is that with the > current CQL3 you have to construct quite complex iterators to retrieve a > large result set. Which means that you end up having to either parse CQL3 > coming in to insert the iteration stuff, or you have to pass CQL3 fragments > in and compose them together with iterator clauses. Not fun stuff either > way. > The only good solution I see is to switch to a streaming protocol (or > build some form of "continue" on top of thrift) such that the client can > ask for a huge result set and the cassandra coordinator can break it into > sub-queries as it sees fit and return results chunk-by-chunk. If this is > really the path forward then all abstractions built above CQL3 before that > will either have a good piece of complex code that can be deleted or worse, > will have an interface that is no longer best practice. > Good luck! > Thorsten > > > > On 8/1/2012 1:47 PM, Harry Wilkinson wrote: > > Hi, > > I'm looking for a Ruby client for Cassandra that is pretty high-level. > I am really hoping to find a Ruby gem of high quality that allows a > developer to create models like you would with ActiveModel. > > So far I have figured out that the canonical Ruby client for Cassandra > is Twitter's Cassandra gem <https://github.com/twitter/cassandra/> of the > same name. It looks great - mature, still in active development, etc. No > stated support for Ruby 1.9.3 that I can see, but I can probably live with > that for now. > > What I'm looking for is a higher-level gem built on that gem that works > like ActiveModel in that you just include a module in your model class and > that gives you methods to declare your model's serialized attributes and > also the usual ActiveModel methods like 'save!', 'valid?', 'find', etc. > > I've been trying out some different NoSQL databases recently, and for > example there is an official Ruby > client<https://github.com/basho/riak-ruby-client>for Riak with a domain model > that is close to Riak's, but then there's also > a gem called 'Ripple' <https://github.com/seancribbs/ripple> that uses a > domain model that is closer to what most Ruby developers are used to. So > it looks like Twitter's Cassandra gem is the one that stays close to the > domain model of Cassandra, and what I'm looking for is a gem that's a > Cassandra equivalent of RIpple. > > From some searching I found > cassandra_object<https://github.com/NZKoz/cassandra_object>, > which has been inactive for a couple of years, but there's a > fork<https://github.com/data-axle/cassandra_object>that looks like it's being > maintained, but I have not found any kind of > information to suggest the maintained fork is in general use yet. I have > found quite a lot of gems of a similar style that people have started and > then not really got very far with. > > So, does anybody know of a suitable gem? Would you recommend it? Or > perhaps you would recommend not using such a gem and sticking with the > lower-level client gem? > > Thanks in advance for your advice. > > Harry > > >