incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Evans <>
Subject Re: Reducing confusion around client libraries
Date Fri, 03 Dec 2010 19:48:08 GMT

On Fri, 2010-12-03 at 11:43 -0600, 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.

I agree that we have a problem, I've been pretty vocal about that on
this venue and others, but the proliferation is a symptom, not the

> 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.

The Apache Cassandra project isn't responsible for either phpcassa or
simplecassie, these are projects of their own.  That doesn't imply that
I don't want Cassandra/PHP users to have the best possible experience,
but having them independently developed is a feature, not a bug. So, if
there is an obvious choice, why isn't it more obvious?  And, if it's not
obvious, maybe it's Good that people have a choice.

> 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.

This is a self-fulfilling prophecy.

> 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.

I *really* dislike this idea, but based on what you are proposing, it
would be the most honest.

> 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.

I'd be +1 for establishing objective criteria for listing libraries on
our wiki, but opposed to having the Apache Cassandra project declare
something Official.

Eric Evans

View raw message