incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Dusbabek <>
Subject Re: Reducing confusion around client libraries
Date Fri, 03 Dec 2010 19:46:45 GMT
We develop the cassandra database.  I believe it is currently beyond
the scope of this project to advocate for and against third party
client libraries.  If it isn't, then we should be actively developing
client libraries.

I think that to take it upon ourselves to do this advocating as a
project is a bit arrogant.

That this is a reactive solution (to client library proliferation)
makes me think there is an underlying problem that ought to be fixed.
The charge has been leveled more than once that the cassandra API is a
bear to work with.  After denying it at first, I am now inclined to
agree.  Why don't we work instead to improve that?

I am -1 on advocating official third-party client libraries.


On Fri, Dec 3, 2010 at 11:43, Jonathan Ellis <> wrote:
> The status quo is not working.  There are way too many questions on
> the user list and on irc about problems with writing Thrift code, even
> when well-maintained clients exist for their language of choice.  And
> that's just the users who were motivated enough to ask instead of
> tweeting that thrift sucks and giving up.
> I think driving people to a real client is primarily a problem we can
> solve with cleanup of the wiki and web site.
> A harder problem is that Choice Is Bad from a user perspective.  We
> shouldn't be making people evaluate Hector vs Pelops, FluentCassandra
> vs Aquiles, phpcassa vs SimpleCassie before writing their application.
>  At the time they need to make this decision they have the very least
> amount of experience with Cassandra on which to base their evaluation;
> we should be guiding them to a sensible default.
> We are failing our users if we make them click through to the version
> control history to see whether phpcassa is more actively maintained
> than simplecassie.
> It's a vicious cycle, too: since there are no "official" clients,
> people are quicker to write their own instead of contributing to an
> existing one, leading to more proliferation of (often) half-baked
> clients taking up space on the wiki page.  We're just getting started
> on this process for 0.7, but take a look at how 0.6 ended up:
>  Over half of those
> are abandoned now, but a new user would have to do a lot of spelunking
> to figure out which was which.
> Moving clients in-tree would solve this, and the problem is bad enough
> that I almost wrote an email proposing that, but I would really prefer
> to avoid subjecting clients to our PMC, voting process, ticket
> tracking system, etc.
> Instead, I think we we should aggressively curate the ClientOptions
> page: pick an official client for each language, and move the rest to
> an AlternativeClients page.  This wouldn't be written in stone; if
> someone wrote a Twisted client that he thinks is better than Telephus,
> we can have a discussion on whether to move to the new one.  But we
> need to have a default choice to take the pain out of getting started
> with Cassandra.
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder of Riptano, the source for professional Cassandra support

View raw message