|RethinkDB Closure Analysis|
|Written by Kay Ewbank|
|Wednesday, 25 January 2017|
Now that the dust has settled on the closure of RethinkDB, the chief developer behind RethinkDB has explained why he thinks the project failed, and it makes for sobering reading.
Back in October, the news was announced that after more than seven years of development, the company behind RethinkDB is shutting down, although RethinkDB and Horizon will continue to be available, distributed under open source licenses.
At the time, Slava Akhmechet said:
"We worked very hard to make RethinkDB successful, but in spite of all our efforts we were ultimately unable to build a sustainable business."
He promised then to write about the lessons learned so the startup community can benefit from RethinkDB's mistakes.
RethinkDB is an open source NoSQL JSON database designed for web apps. Its main differentiator is that you can tell it to continuously push updated query results to applications in real time, rather than having your app poll for changes.
The team launched a Windows version early in 2016, but by October had decided they could no longer continue commercial development. The database market is of course dominated by a few very big names, and while RethinkDB has some excellent attributes, it was fighting for space in a crowded market where the 'safe' choice was always going to be something else.
Akhmechet's analysis of why a very good database failed to be a commercial success makes some points that anyone developing software would do well to consider. He says that people have proposed many reasons for why RethinkDB failed, from inexplicable perversity of human nature and clever machinations of MongoDB’s marketing people, to failure to build an experienced go-to-market team, to lack of numeric type support beyond 64-bit
However, while admitting that some of the reasons hypothesized have a ring of truth to them, Akhmechet says they’re symptoms rather than causes. He says in this view:
"In hindsight, two things went wrong – we picked a terrible market and optimized the product for the wrong metrics of goodness."
The terrible market part of the problem, according to Akhmechet, was that while the company was trying to be an infrastructure company concentrating on capturing part of the huge database market:
"Unfortunately you’re not in the market you think you’re in – you’re in the market your users think you’re in. And our users clearly thought of us as an open-source developer tools company, because that’s what we really were. Which turned out to be very unfortunate, because the open-source developer tools market is one of the worst markets one could possibly end up in."
He says that while thousands of people used RethinkDB, often in business contexts, most were willing to pay less for the lifetime of usage than the price of a single Starbucks coffee.
Akhmechet says the problem is that developers love building developer tools, often for free, meaning that while there is massive demand, the supply vastly outstrips it. He points out that even 'successful' companies such as MongoDB and Docker have a revenue per employee that is tiny compared to B2B technology companies in markets that aren’t developer tools. Akhmechet says the toughness of the market means that developer tools startup have a much more difficult time getting sales, because while lots of people are downloading your product and engaging with you, you have to burn through a ridiculous number of leads to converge to a single sale:
"This has disastrous domino effects. It demoralizes the team, and makes it very challenging to attract investment and hire top talent. In turn, that constrains your resources so you can’t make sufficient investment in product and distribution."
The next problem for RethinkDB, according to Akhmechet, was that the company chose the 'wrong metrics of goodness'. Because the developers wanted to build an elegant, robust, and beautiful product, they optimized for correctness, simplicity of the interface,and consistency, The problem was that the majority of users wanted a product to actually exist when they needed it, not three years later; to be fast on workloads they actually tried; and to provide a good way to do specific things such as store JSON documents from hapi, or store and analyze logs. The speed analysis goes like this:
"People wanted RethinkDB to be fast on workloads they actually tried, rather than “real world” workloads we suggested. For example, they’d write quick scripts to measure how long it takes to insert ten thousand documents without ever reading them back. MongoDB mastered these workloads brilliantly, while we fought the losing battle of educating the market."
"It’s not that we didn’t try to ship quickly, make RethinkDB fast, and build the ecosystem around it to make doing useful work easy. We did. But correct, simple, and consistent software takes a very long time to build. That put us three years behind the market."
This meant that by the time RethinkDB could be recommended for use in production, almost everyone was asking “how is RethinkDB different from MongoDB?” At the time the version of MongoDB that was available had design and implementation problems, but it had market share. As Akhmechet acknowledges:
"MongoDB turned regular developers into heroes when people needed it, not years after the fact. It made data storage fast, and let people ship products quickly. And over time, MongoDB grew up. One by one, they fixed the issues with the architecture, and now it is an excellent product. It may not be as beautiful as we would have wanted, but it does the job, and it does it well."
The end result is that even though RethinkDB was more elegant and well implemented, it couldn't compete. Akhmechet says that the team didn’t know at the start that they needed go-to-market expertise, so didn't have suitable people in that area on the founding team:
"By the time we built up a mental model that maps well to reality, we found ourselves short on cash, in a difficult market filled with capable competitors, and a product that’s three years behind."
His parting advice is:
"If you do set out to build a developer tools company, tread carefully. The market is filled with good alternatives. User expectations are high and prices are low. Think deeply about the value you’re offering to the customer. Remember – wanting the world to be a certain way doesn’t make it so."
And he ends with three key points to remember.
It's worth reading the entire blog post - there are more insights and advice. It's also well worth thinking about the points Akhmechet makes; most of us are guilty of not wanting to pay for developer tools, and most of us who create apps fall into the traps Akhmechet describes. I really hope he (and RethinkDB) go on to greater things.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Wednesday, 25 January 2017 )|