3 ms·
The bigger concern should be that databases like MongoDB and Redis are part of an older breed. The newest databases, built to handle the most demanding load, li
by 013a 8y ago
The bigger concern should be that databases like MongoDB and Redis are part of an older breed. The newest databases, built to handle the most demanding load, like DynamoDB, Aurora, or CloudSpanner, are intimately tied to the cloud providers they're deployed on, for legitimately necessary reasons. As the world gets more complex and demanding, this old model of "I've got a server, lets put a database on it" just doesn't scale, even including these "web scale" NoSQL databases like MongoDB.
No one beside AWS (or Google or Microsoft) is even capable of building databases to meet these new challenges. For now.
Cost plays into this as well. DocumentDB is so cheap because it is built on the Aurora storage engine, which in turn is intimately tied to the infrastructure. MongoDB Atlas can't compete with that. They have to charge you more because they can still point to the servers that your database is running on. An Aurora database might be spread across a dozen different servers and services within AWS, taking up just bits and pieces of processing on each; the parts of Aurora that need lots of storage are on machines optimized for that, the parts that need compute are on machines optimized for that, they're all connected with terabits of networking, and those pennies of savings turn into hundreds of dollars at scale which they can pass on to their customers.
Google did the SAME THING years ago with Cloud Memorystore, which exposes a Redis API. Microsoft did the same thing with CosmosDB, which exposes a MongoDB API (among others). Why? Its because the fundamental tech that MongoDB built isn't good. MongoDB is so unbelievably uninteresting to Amazon. Why would they even want to contribute back to it? If they adopted MongoDB wholesale, they and their customers would be worse-off for it. The only people that would win is MongoDB.
But they are interested in the API, because that's what their customers are using.
The license is a red herring. The real reason Amazon did this is the tech. They now have the Aurora storage engine and DynamoDB, which they can put any API they want on top of and it'll be cheaper, more performant, more resilient to failure, and easier to scale than taking "Database of the month X", throwing it on an EC2 instance, and calling it Managed.
And the reason why we're seeing this centralization is because Amazon made the investment in Infrastructure while MongoDB just wanted to build a cool database. Didn't Alan Kay warn us that if you care about the software, you have to care about the hardware? Did we really believe that this only applies to consumer experiences? Amazon didn't. And that's why they're winning.
- statictype 8y ago>But they are interested in the API, because that's what their customers are using. The API is very much a part of the product. It's effectively the UI for the service. Small companies like Mongo and Elastic can't compete on scale but they can compete on interface design. If it's ok for the giant providers to just take their interface design and rip it wholesale then you are cutting off the market for new database engines. Aurora and DynamoDB have been around for ages. If it's objectively superior, then why did they feel the need to make a MongoDB compatibility layer? Because despite being 'superior', people were still using MongoDB. A database engine is more than just the backend. The developer-facing side is just as important - if not more so.
- xorcist 8y ago> then you are cutting off the market for new database engines No, you're really, really not. There is plenty of opportunity for innovation still. Should basic APIs be considered intellectual property we'd be in for some real trouble as an industry.