I'm also excited to have them join us here at Stripe. As we've gotten to know Mike, Slava, and the other Rethinks -- and shared some of our plans with them and gotten their feedback -- we've become pretty convinced that we can build some excellent products together in the future. I'm looking forward to learning from all of them.
[1] (And, for me, even before Stripe -- I started learning Haskell with Slava's Lisp-interpreter-in-Haskell tutorial back in 2006... http://www.defmacro.org/ramblings/lisp-in-haskell.html)
On a sidenote, for people unfamiliar with RethinkDB, this episode of The Changelog with Slava explains some of the history and choices behind RethinkDB ; I found it really interesting. https://changelog.com/114/
The team at Stripe has been absolutely phenomenal throughout this process, they've gone above and beyond in finding high-impact projects for our team. We're brainstorming together how to transition RethinkDB to a self-sustaining open-source project, and Stripe is super-supportive of that too. If there is a way for RethinkDB to live on, we'll find it!
Also, TIL: Slava is defmarco. Yeah defmarco, that's how I read it for a long time. I especially love this piece from defmarco http://www.defmacro.org/ramblings/fp.html
Just another +1 to the "OMG it's him/her?" moments regularly experience while reading HN. Thanks for mentioning.
I see a lot of similarities between Stripe's offering and RethinkDB, making a once painful process into one that is actually looked forward to when building a new product. I'm glad Stripe will have even more engineering firepower as they continue to succeed.
Sad that RethinkDB(.com) is no more, but happy they found a great company to join!
Why buy something you can have for free?
So in other words you're not going to continue to work on Horizon and Rethink, or at least if you do they are secondary priorities? Ugh.
Slava did the right thing; his first responsibility is to his employees, not his users, but this really sucks for us users.
For us, it would probably have been better to shut down abruptly. The community would have scrambled. Some employees would find work in companies that used RethinkDB, and maintenance would have continued the same way that Apache was developed ~20 years ago. Some would have grabbed support contracts from users. And some would have moved on.
This isn't meant to be harsh, but these are times to learn, not simply pat each other on the back.
I don't know how this could have been fixed though. Databases are hard to develop and it's a tough market to crack. Enterprises aren't going to buy an incomplete product, especially not a database, which is arguably the most critical component in the entire stack. Anyone investing would have to know that this would be a years-long effort to build a solid product before the first dollar.
Perhaps RethinkDB could have shortened their development time by not pivoting around (originally SSD optimizations, later realtime. also Horizon is a bit of a mini-pivot), but I don't know by how much.
- bad performance
- a dearth of types (literally only a single numeric type that is a 64-bit float, so that eliminates entire categories that rely on integer/fixed-precision exact arithmetic. Also, time series are seriously hurt by that decision. I've seen DBs have to move to 64-bit longs because of that issue alone. Having a pseudo-type layered on top is just going to tie up CPU cycles in the encode/decodes that need to happen. (Plus milliseconds aren't enough in a nano-second world now.)
This whole "let's do everything with as few types as possible" I hope is a fad that will just die quickly in the DB world.
This is with about 20 minutes of looking around and just listing a few things. It looks like RethinkDB was written by web devs for web devs and I don't think that can compete in the database world. You might get the web devs onboard, but the database and HPC people at the firm will probably look at it and go "how quaint when can we get Oracle/Postgres/Informix/etc up and running?"
When Horizon was announced, that's when I stopped even considering RethinkDB for new projects (even if it was a good fit, feature-wise). Call it a "business smell", but I'm not surprised to hear they've wound the business down.
Communities are supposed to be supportive, too. Pity this thread is the only time I've seen that on HN as of late!
They mentioned that they will be releasing more post-mortems later. For now, I'm comfortable with supporting them and hearing about their learning later.
The RethinkDB team built an amazing product that many people appreciated - as noted by the comments here- and for that they have my praise and admiration. The fact that the product will continue without the business is also noteworthy. Well done all
I guess those other document-oriented dbms just had better early stage shilling to get funding before RethinkDB did, and by the time Rethink shopped around there was already enough competitors that investments in documented-oriented dbms dried up.
The current state of the art is an in-memory dbms to take advantage of future available (soon, 2017) non-volatile memory. CMU is developing such a dbms http://pelotondb.org/ and there's also MemSql and Sap Hana.
...but the licence is 250k dollars a year so big fail for startups.
I think they needed to develop just one feature which cannot be done by Oracle and that is that.
The other problem could be that NoSQL hype just died out :(
Because nobody used it.
This shutdown therefore goes a long way to say how talented and ethically correct the team was, something extremely evident in how they put correctness and reliability in front of performance.
In short, RethinkDB is a very solid piece of software that does well where (many) other NoSQLs fall short, that is:
* easy HA and automatic failover
* easy auto sharding
* rational query language
* ease of administration and awareness (webUI)
* realtime capabilities
* perform well on the Jepsen test!
Now, what could have they done differently to stay afloat?
What avenues do we have to fund fund such great projects, whose point is being OSS?
(I mean, one of the selling points of RethinkDB is that one can trust it in this land of NoSQLs that promise but don't deliver, and this is in part thanks to their open development processes)- lack of mass adoption - they didnt solve a problem everyone had
- lack of nitch adoption - they didnt solve a problem a few people had badly
I can tell you 4 features that I view more important than change subscription
- can run in any ecosystem - pouchdb/couchdb and waterline are examples of single apis in different environments. Even being able to use the database 100% in memory as a redis alternative would be nice.
- supports transactions across shards natively - this is a difficult but important feature that mongodb is missing
- supports document id transaction and table transaction - if Im only updating two documents, I have no interest in making many financial transactions wait for a table to be finished being used when I only care about 2 documents in that table.
- "sync" feature on a table - pouchdb supports this for syncing a client with a server
Rethinksb failed because, despite its sweet name, it wasnt solving that important of problems.
Going by the public information on their website, the only way the company was making money from its product was via support and training.
The problem with making money only with training and support is that it falls flat when the product and documentation are so well done barely anyone considers these things important enough to spend money on them.
Additionally the website doesn't really provide much information on these services other than a contact form. If you're not already in touch with RethinkDB devs, you're probably more likely to ask a local contractor or specialised training company for help instead of reaching out to RethinkDB.
By all appearances, RethinkDB has been pretty successful as an open source project. It has a strong and active community, it is well represented at meetups, conferences and podcasts, it has 16k stars on GitHub (MongoDB has only 10k, MariaDB and MySQL have only 1k each).
But the company was not able to turn any of those numbers into revenue. Downloads, GitHub stars and Twitter mentions don't pay to keep the lights on. A successful open source project does not equal a successful commercial enterprise.
Unfortunately, popularity doesn't imply merit and merit doesn't imply popularity.
Make a private (non-OSS) version optimized for Business (B2B), do external consultant jobs and pretty much ask for donations from the big players/users. This is a common problem from almost every OSS project and so far the only one that is doing this is OpenSSL.
Its clear to me that Rethink is the model for future databases - its just that DBs have a long gestation as no-one wants to risk their data until the code is aged like a fine wine. Its an important longterm technology play - just the kind we need to improve things for all of us.
In two or three years I think they would be making money, I think this is a failure of capitalism or imagination our HN/SV community.
To those several of us who have the power to write a check, please consider doing so, Rethink have been relentlessly building the future [ and you will make money ]
As a company choosing open source technologies, the popularity is important. Otherwise you run into issues finding answers to common problems and you end up paying through the nose for support.
Presumably, that's in part why CockroachDB decided to be more-or-less Postgres-compatible on the wire, and embraced SQL.
My initial thought is that MongoDB has done a way, way better job at SEO. The number of blog posts about RethinkDB pales in comparison to Mongo. I wonder if they got beat on sales as well? Not sure.
I wouldn't be surprised if people a) didn't use Rethink because they're happy with Mongo and its popularity b) hated Mongo and saw Rethink as too similar/didn't research it enough.
Went with Postgres for all three.
When Windows Phone 7 came out, without background tasks, MS was quick to point out that the iPhone didn't originally have it either. It was a silly argument; Neither Apple nor Google were selling phones without that feature at that time.
I'm not saying Rethink did anything wrong. And by bringing up MS, I don't want anyone to think Rethink had the same sense of entitlement as Microsoft.
Your v1 has to compete against your competitors current version, not their 5-year old v1. RethinkDB had a lot of powerful features, but it also lacked a lot of features that for me, and I have to suspect many others, made it an impossible choice.
(Also, I hated the query syntax. I was willing to fight through it, but I often wondered if that was turning people off)
(via this HN submission: https://news.ycombinator.com/item?id=12650033)
Perhaps this is what RethinkDB's strategy was all along with targeting real-time applications. I wonder if they were just... too early?
Given that the market for document DBMS is pretty small to begin with it's tough to beat a 25x difference in budget unless you have a product that is a complete game-changer. It will be interesting to see Slava's analysis. Meanwhile I wish the team and RethinkDB users well. DBMS start-ups are damn tough to pull off.
RethinkDB, 2009-11 = $4.2MM
MongoDB, 2008-2009 = $4.9MM
It's true that MongoDB quickly closed on a $6.5MM Series C in Dec of 2010, one year after their Series B. For Rethink, it took them another 2 years to get the last $8MM. There's no question that MongoDB was "better" at raising more money, faster.
I'm just thinking out loud here, but I wonder if MongoDB made a conscious tradeoff to sacrifice good tech to have better marketing & sales early on.
Crunchbase links here:
- https://www.crunchbase.com/organization/mongodb-inc/funding-...
- https://www.crunchbase.com/organization/rethinkdb/funding-ro...
This was real technology! I'm truly sad that the environment is such that great work like this can't continue to be funded.
Thanks for showing everyone how to write amazing documentation, caring about the fundamentals, and for the incrediblly snazzy admin panel.
Thanks for showing everyone how to write amazing documentation
Thank you! (Really. I'm RethinkDB's documentation writer/editor.)
Really, you did have fantastic documentation, as the original said. Kudos.
Sales are essential for a for-profit company.
Keep this in mind when you invest in a certain technology: some organizations, especially nonprofits (for example, the Apache Software Foundation, Python Software Foundation, the new Node Foundation) are probably going to support and develop their software for extended periods of time relative to, say, a startup or for-profit (Parse, MongoDB and RethinkDB immediately come to mind).
Only certain super-behemoths like Microsoft or Apple can afford to have their infrastructure products being closed-source.
I am all for open source, but it doesn't make things like this is easy as some make it out to be. For example with Linux source, how long would it take me to fix a video driver bug? Perhaps a year?
The way this is dealt with for closed-source software is source-code escrow. The support contracts stipulate that the company that built the software set aside the code with some stable third party, and that it be available under specified conditions, such as the builders going out of business.
It's not as good as having the source freely available, but then it's dealing with an extreme contingency, anyway. Very, very few users of a piece of software have the expertise to build it from source and then debug it if they run into problems. So they're probably screwed either way if the builders go belly up.
> Only certain super-behemoths like Microsoft or Apple can afford to have their infrastructure products being closed-source.
The alternative is to buy truly critical software only from companies you trust a lot. XYZ Valley Startup is unlikely to be around in 20 years, but Oracle almost certainly will, as will Microsoft.
If a project is open source then who is committed to helping you support and maintain it? You essentially need to have a team to do it.
If there's a company behind it, it gives you assurances.
Especially for a small company that needs to focus on building a product rather than committing features and bug fixes to their database
Later onwards, when I was working on an NLP startup earlier this year, I opted to use RethinkDB because I had seen how clean, smooth, and fast its internals were. When I had a hiccup with running a cluster in here cloud and tweeted about it, Mike and others from. The RethinkDB team instantly reached out to me and helped me resolve the issue.
The entire sell of MongoDB in the Node community seems to be "it speaks JavaScript and you can store objects in it". Which of course fails to take into account any of the strengths and weaknesses of MongoDB (in the latter case especially the lack of cross-collection transactions or fast joins -- which in my experience account for 90% of the problems Node developers face with MongoDB).
The main reason MongoDB is popular in the Node community is that both reached peak hype around the same time. So it made perfect sense to bundle both of the "hottest" technologies together. Except by the point Angular 1 reached peak hype MongoDB was already facing criticism, so MEAN mostly seems to bask in its afterglow.
If you had asked me last month, my prediction would have been a RethinkDB+Node+React (or RethinkDB+Node+Angular2) stack popping up to challenge MEAN, though the RethinkDB+Node bit seems to have already been addressed by Rethink's own Horizon.
TERP Stack : The most adventureous stack for
InTREPid EnTERPreneurs
Tornado RethinkDB Emberjs Python.
LEST GO!
In most enterprises around 2/3 of the data in the lake is unstructured and comes from multiple systems we don't control or have visibility into. So it just gets dumped into HDFS until someone creates the relevant HCatalog schemas. Having a database like MongoDB at least allows you to extract and access some of the data in an automated fashion e.g. JSON reflection. It's especially useful for adhoc and lightweight model scoring and feature engineering.
One of your engineers even wrote once that maybe you took longer than you should have and over-engineered some things, but now that that was in place y'all would be better off for it. I'm sorry that didn't wind up being the case, at least as far as your company is concerned.
RethinkDB was at the top of my list of technologies I want to build something on. I even went to your (one?) meetup in Boulder. I guess my t-shirt is now a collectable :-/
But I'm happy for y'all that you wound up finding a great place you can all work together. Best of luck!
Sad day to me, but as an open source tech, I hope and trust it will continue to live on.
It sounds like the company landed at Stripe. Good for them. Glad they weren't left out in the cold.
Thank you all very much for your hard work. In my short period of time I have had using RethinkDB, it's been a pleasure to work with.
I hope to see RethinkDB to live on in the OS community.
I had just started a new company using RethinkDB, and it was definitely poised to be my go to database for new projects. Anyway, all this is to say, for someone who I know only through his works, I have great respect for Slava and want to thank him for the work he's done. Here's to hoping that RethinkDB finds a way to continue.
I feel we're at a stage where some of the key technologies/platforms are coming out of relatively small companies (docker, storm, rethinkdb, to name a few), however, it appears it can be tough to make a business out of this alone.
I'm consequently very happy to see that the RethinkDB team have found a home at Stripe and hope that works as a setup to allow the talent to flourish and keep producing great work/innovations.
So is this one of Stripe's BYOT hires?
I have huge respect for the RethinkDB team - They've put the product above everything else and they've made it accessible to as many developers as possible by making it open source.
I think that in spite of this announcement, I will likely continue to use RethinkDB.
I think you guys introduced friction very early on with some of the developers, because of your name. Given the context of our times where many of the devs joke around about "yet another 'revolutionary' database that claims to be different and then does the same thing, but dropping some crucial functionality" (for which I primarily blame MongoDB), "RethinkDB" can be considered a bit of a sardonic name. It can also read as "we need to reject the notions other databases are built on and rethink it all", which to more conservative devs can feel as an attack on decades of thought and design around their beloved MySQL and PostgreSQL.
Basically, I think this name might actively discourage developers from adopting your db or at least playing around with it.
Dec, 2013 $8M / Series A2
Sep, 2011 $3M / Series A
Apr, 2010 $1.2M / Seed
Jun, 2009 undisclosed amount / Seed
Did the company have any revenue or was that the only money the company had to run on?Assuming that info is correct, that's pretty slim for building a "hard tech" type of company. Building a database (from scratch no less) is a lot of up front work. Even after it's built you need to convince tech people to want to use it, convince their bosses to let them use it, and even then, hire sales people to sell support contracts.
Not necessarily. It's possible they still have cash on hand but limited runway. Anything leftover would go back to investors.
That's assuming they never had any revenue. If they had money coming in, they could have spent that as well so the formula gets more complicated.
Where are all the scaffolding tools? The examples?
I have only heard of Rethink because I read HN every day. But no one knows about it. That is obviously the reason it failed - bad marketing.
Of course, it's hard to be profitable at NoSQL after Mongo either got all the hype years before or turned people off the concept entirely.
Developers like hackable systems with bugs and problems they can solve, this is how they get "experts", bigger communities grow, more posts exists, the project get more attention. E.g. WordPress, it is not one of the most used CMS out there because it is the best.
But, not always the best system is the winner.
Go Slava!
Beautiful query language called AQL, and graphing support (multi-model) baked in.
1. https://www.postgresql.org/docs/9.6/static/sql-notify.html
https://gist.github.com/bithavoc/f40bbc33b553f2fddf9e1095858...
Something that RethinkDB supported natively :(
-- LISTEN/NOTIFY has a payload size hardcoded maximum. For big documents, we have to send a record ID then fetch the document upon receiving a message. In practice, it adds 5ms of overhead.
-- One of the best features is that you can combine this with pg_try_advisory_lock to create job queues that use the core locking features of postgres, which are pretty darn reliable and well defined. We use nodejs, and if the server processing a job dies, the lock is released automatically and another nodejs process can pick it up.
I found both nice and even built a product on top of rethink over the last twelve months. Guess I was blended by the hype :D
Also having followed Slava for a sometime, nothing but respect and admiration for him!
https://rethinkdb.com/docs/sql-to-reql/javascript/
The more complex the query becomes I just felt everything was getting less intuitive compared to the SQL version and ended up not actually using it.
For anyone who switched from SQL, I'd like to know how it felt to write RethinkDB queries. Did they start to feel fluent later on?
It took a few weeks for ReQL to really sink in, but once it did, I much preferred it to SQL. As my sibling comment says, its very linear: do this then this then this then this. It also feels very much like sequence processing in functional languages (and I was using Clojure at the time, so it really meshed very well).
I also found it much easier (than SQL, at least in my limited experience) to reason about performance because I knew what it was doing. Is this looked up by index? Yes, because that's the command I used.
So, yeah, ReQL actually ended up being one of the things I liked most about RethinkDB.
With ReQL you new exactly how indexes were being used, and how the data was being accessed. No trying to guess what the query optimizer was doing in the background.
I have much love for the Rethink team. I am glad to see they are doing their best to support the community during this difficult time.
We have a similar page at ArangoDB to help developers used to SQL to understand the general differences in AQL: https://www.arangodb.com/why-arangodb/sql-aql-comparison/
I also wish I knew what RethinkDB's investors are thinking.
At least that's what the website indicates.
Jeroen / VeXocide here, one of the RethinkDB engineers
Availability as a service was an issue, the compose deal did not work well for me, as my stuff was hosted on heroku.
Anyway, rethinkdb is probably the most awesome database I've tried.
Given that this is the way many of us are operating (i.e. 'moving to the cloud'), i wonder what the state of open source software is going to be in the coming years ...
Much respect for the no-BS announcement.
I'm sad that all that excellent engineering hasn't translated into a profitable business model. Part of me wants to suggest you make a donation campaign, and I'd be happy to become a regular donor. But it's understandable and respectable that you guys want to move on to other ventures.
I've also used Stripe's API and their systems are also very good. I'm glad to hear you'll find a place with another solid engineering team and I wish you guys all the best.
Quite off-topic but has anyone managed to implement something similar to Changefeeds in MongoDB? RethinkDB sends both old data and new data and watching the oplog sounds like a bad idea.
But my question is, what are your thoughts on building more than a product but a business with RethinkDB? Will the support quality decrease? Will Stripe offer architectural consulting? Will developers be interested in learning ReQL?
But i do not worry , since this is announced many folks willing to support from community and many willing to contribute to RethinkDB in terms of both profit sharing and code steps up.
Also Stripe and Compose.io step up , to stand with RethinkDB .
I for one , a Startup Enterprenuer and Founder of Software Agency from Myanmar , Promise to share at least 5% of our profit on projects developed using RethinkDB to keep it Running .
Kudos to the RethinkDB team for trying, and giving us a very useful DB.
Your sales force strength becomes critical.
Waiting for insider insights.
That should say a lot about how amazing RethinkDB is. It's unfortunate to see this get shut down as RethinkDB is pretty easy to work with
Good move by Stripe to pick up these fantastic engineers.
Just another confirmation that many of those companies list all these big well-known 'customers'.. except they are just lying. Maybe someone in nasa downloaded rethinkdb once and they just listed them there?
> At NASA, RethinkDB is radically simplifying how we provide real-time services in support of Extra-Vehicular Activity. -- Collin Estes, Director of Software Engineering, Chief Architect - MRI Technologies Inc. - NASA / ESOC
My guess is that RethinkDB failed financially because they had a lot of users but not a lot of customers. Most users weren't buying support contracts.
They might even use RethinkDB extensively -- that doesn't mean RethinkDB makes any money from it. It's not lying, not even misleading. It's just not a metric that translates into "this company is making lots of money".
If you're a hugely successful open source project and every Fortune 500 company uses your tech that still doesn't mean you're financially viable unless those companies also give you enough money (e.g. for support and training, or proprietary licensing deals) to sustain yourself.
So what is next? I need to strongly remind people that both Mozilla Firefox and Blender were Open Source projects that survived their parent companies. This is not a death statement, and very easily could be a rebirth of Rethink.
Despite working on a competing database, I want to take a moment to explain why RethinkDB is the best in its chosen niche, by comparing it to other options out there:
- MongoDB. You won't get realtime updates and relational documents if you use MongoDB compared to RethinkDB.
- MySQL/Postgres. Rethink's awesome ReQL query language is a joy to work with compared to standard SQL. Without Rethink, you'll be missing document storage and live queries.
- gunDB. Our model is Master-Master, which while we think is great, it fundamentally restricts you from building Strongly Consistent systems, like banking apps, etc. RethinkDB is the only realtime updating Master-Slave system out there. They clearly win here.
- Redis. RethinkDB still has amazing speed and performance, but offers so much more than Redis by itself can.
- Hadoop. I know less here, but I've heard that RethinkDB has an amazing query optimization engine. Automatically taking your query and sharding it out across the distributed storage system.
RethinkDB is a winner in these technical aspects and fits for a very well defined problem. I encourage people to still use it and contribute to it if their business matches that. Don't let news like this deter you, or else we would have lost gems like FireFox and Blender.
Best regards to you guys, you are awesome.
There are so many projects that really need attention to keep open source growing. I started looking at what I could do for IRCv3 projects recently because I'd really like to support an open source alternative to Slack.
Because it looks eerily similar to another arm swinging chant that another NL East team does.
But they made a badass database that relatively speaking IS very popular. So thats not failing. Thats winning.
Also maybe these people are being more honest and responsible than some startups that keep flushing millions knowing they are unlikely to ever have a positive cash flow.
Plus getting acquired by some company like Stripe, realistically, whether there was some big exit or not, is the dream of many people.
So given the reality of the startup scene to say they 'failed' is a joke.
But RethinkDB evidently failed as a company. The announcement indicates we might learn more about how it failed specifically but at this point it seems like it simply didn't achieve one of two things: become cashflow positive or gain another investment/acquisition.
It also seems the open source project will live on.