MongoDB grabbed headlines last week with the release of version 3.2 of its popular NoSQL database. Consistent with the company’s prescribed messaging, the tech media dutifully inserted “enterprise” into every headline, touting MongoDB’s new storage engines for better data security, among other things.
But one thing was missing from that enterprise messaging, perhaps because it went missing from MongoDB’s Enterprise product: joins.
That wasn’t the plan. The plan was originally to charge for joins (or $lookup, as MongoDB is calling the functionality). Yet MongoDB’s ever-watchful (but not always paying) community resisted.
MongoDB’s capitulation is, of course, a testament to the company’s willingness to heed the voice of its community. However, it’s also a testament to just how hard it is to make money on free software: “Here’s a new thing but you can’t have it!”
Joins are table stakes in the relational database world, of course, but somewhat of a revelation among the NoSQL class. As the most popular NoSQL database, MongoDB’s decision to extend its relevance to the RDBMS crowd was smart and likely to make it even more popular.
Except for one thing: not everyone would get the joins technology.
When originally announcing this new functionality, dubbed $lookup, MongoDB chief technology officer Eliot Horowitz told the faithful that $lookup would only be available to paid subscribers, with somewhat convoluted reasoning as to why.
Whatever Horowitz’s attempts to explain the decision, as someone that spent 15 years working for open-source companies (including MongoDB), I can give a one-word reason for locking up $lookup:
Historically called “Open Core”, many open-source companies have attempted to charge for “enterprise” features. By introducing product differentiation between enterprise and “community” (open source) products, open source companies hope to turn a significant percentage of open source downloaders into paid subscribers.
But a funny thing happened on the way to $lookup-driven product differentiation.
As the news started to sink in, an angry mob of live-free-or-die MongoDB community members started storming the corporate castle. For example, Chad Kreimendahl started swinging, arguing: “That's got to be a joke,” as he felt that MongoDB had pumped him for “feedback and valuable input” and then planned to “exclude those [like he] who had input.”
And that was the polite response.
Ben Rotz also wrung his hands that: “Feature split with functions at this level makes me nervous about what next ‘most requested’ feature is going to get the enterprise-only treatment.”
So far, so typical of the huddled open source communities yearning to use free software.