My article on Riak and Cassandra seems to have ignited quite a controversy, involving more than just those two projects. Basho’s Justin Sheehy correctly makes the point that, “When you are disrupting a much larger established industry, aggression amongst peers isn’t a good route to success.” Benjamin Black puts it even more succinctly: it’s a big ocean. Alex Popescu says, “I think the market is still too young and small to see real attacks between the players.” These are all good points, so let me get one thing out there right away.

Riak is not a bad product. Basho people are not bad people.

Yes, I’ve had some issues both with Riak and with their comparison to Cassandra. On the other hand, as far back as last October of last year I recommended their descriptions of consistent hashing and vector clocks. Later in the same month, I had this to say about Riak.

I like its feature set and what I’ve read about its architecture passes the “how I would have done it” test

More recently, I have commended Andy Gross and Rusty Klophaus for their efforts to improve the situation. I am neither anti-Riak nor anti-Basho. Heck, we’re not far apart geographically. They’re in a building only a couple of blocks from some of my old stomping grounds. Whatever differences we have could probably be resolved over a couple of beers at Cambridge Brewing Co.

That said, I still think it’s worth addressing the issues that Justin/Benjamin/Alex raise. There will be aggression between competitors. Back when I was at Revivio, when we and others were trying to establish the market for continuous data protection, many of the same issues of cooperation vs. competition played out the same way. In the early days, we were generally happy to share the stage (sometimes literally) with our competitors, all positioning ourselves vs. The Enemy which was single-point-in-time (pejoratively “SPIT”) backup. We each tried to carve out our own niche within this new space, but things were very friendly. Sound familiar? This is very consistent with Justin’s portrayal of NoSQL and craft brewing. Of course, there did come a time when that comity started to dissolve and people started taking cheap shots at one another. Times change, and changing times call for changing tactics.

There’s room for reasonable people to disagree about who started the “real attacks between the players” in this case. I might point to Mark Phillips adding the inflammatory language about performance vs. data integrity to the Basho comparison on March 17 (subsequently retracted). Mark might point to my post on March 19. It doesn’t matter. Let me repeat that: It. Doesn’t. Freaking. Matter. Aggressive marketing will become commonplace sooner or later. The real question is: what should the people who want to maintain a more collegial tone do about it? As with NoSQL itself, there’s no single answer. Sometimes “turn the other cheek” is the right answer. Sometimes “hit back harder” is the right answer. I don’t believe in “do unto others” in either its “…as you would have done” or its “…before they do” forms. Having studied the Iterated Prisoners’ Dilemma and the Evolution of Cooperation more than a bit, I believe in doing unto others as I have seen them do (to me or to others). People learn from both positive and negative reinforcement, to varying degrees.

Here’s my advice, then: don’t shy away from conflict, but don’t make it more than it has to be. In game-theory terms, retaliate proportionally, then forgive and move on. Sometimes people will respond well when you approach them politely Sometimes they won’t respond at all until they encounter forceful opposition. Be alert for both, and respond to both accordingly. In particular, don’t let people get away with pretending to be innocent victims when they contributed significantly to the conflict, and especially not when in their very appeal to collegiality they continue to push negative characterizations of those who quite justifiably took offense. Also, reward and encourage people who do play the game the way you’d like to see it played. Don’t let people think that the only way to get attention is by going negative. I’ve had very positive interactions and/or have praised not only the Cassandra folks but also (deep breath) Voldemort, HBase, Hypertable, MongoDB, and Keyspace. There are others I’ve seen but not directly interacted with, who seem like fine upstanding folks too. I appreciate that, and I think the NoSQL community in general is still in a good place. We should try to keep that going, which means actively working toward that goal by offering kudos and congratulations as well as criticism either of projects or of what is written about them.

I’m quite willing to move past this. I’m not going to apologize for having responded caustically to the Basho comparison, but I will apologize for having allowed what could have been a minor and short-lived conflict to become something more damaging to all concerned. I’m sorry. I regret the effect my writings have had both on Riak/Basho and on the broader NoSQL community. There, I did it. Now, Justin/Mark/anyone: how about those beers?