Recently Amazon released a new Database as service offering called DocumentDB and it is compatible with DocumentDB. Initially this sounds awesome. You don’t have to worry about the new license changes with MongoDB and there are already tons business that use Amazon for IT infrastructure. However there is something scary about this and dates back to the early days of Microsoft.
The Orgin of Microsoft’s Embrace Extend Extinguish
In the early days of Microsoft Office they were compatible with the office suite offered by Lotus which was the most popular office suite at the time. However like most software Microsoft Office started adding on features to Office and people started to move over from Lotus. After a Office became the most popular office suite some of these new features broke compatibility with Lotus. Now Microsoft Office was the only program that could open Office docs Properly, and it was the default Offce suite that businesses used and students were being taught. So now if you did want to use an alternative program you had to go through the hastle of resaving all your files and fixing the issues changing formats. Since the writers of Google Docs and Libre Office didn’t want to reimplent the 10000 page ooxml spec that is used to save Office files.
How this applies to DocumentDB
Right now with MongoDB you can deploy it on your own infrastructure, numerous cloud providers, or a combination of the two and MongoDB will be happy to support you. You can also decide to support your self and use the product for free. With DocumentDB You have to run it on AWS and there is no option to run it on another cloud provider or self host it. What is the problem? DocumentDB is compatibile with MongoDB if AWS raises their prices or doesn’t meet your needs you can just switch to MongoDB This might be the case right now, but software isn’t static. Patches are made features are added and at somepoint there is a good chance of MongoDB and DocumentDB being incompatible. Then if AWS stops meeting your needs you are stuck in AWS with a database that doesn’t meet your needs and no easy way out. The way out is a database migration which can cause downtime and cause developers to send time changing database code instead devleoping new features
How this effects free software in the future
The whole reason for the relicense is that Mongo is having issues making money off of MongoDB. Open Source devs have been having a hard time finding ways to get paid for years. The solution I think is changing who is paying the developers not creating licenses that get you pulled from everyone’s repos. Mongo is a startup that needs to make their investors happy by selling their services to others since there is no fee for using MongoDB. Since MongoDB is open source anyone can fork it and add features and/or sell their services to compete with Mongo. This creates stiff competition for Mongo with people with much bigger pockets like Tencent and Amazon who can afford slimmer margin’s since they can also make money hosting mongo on their infrastructure. In the future I these massive hosting providers will be the people coming out with cloud friendly software instead of startups. Companies like Google and Microsoft have much more moeny than a startup and they have better relationships with customers since they already buying services. They can develop solutions in house and create an amazing implementation then release the product and the code at the same time. Giving the devleoper a first mover advantage without creating lockin so IT decision makers can feel safer buying these services. Google has already done with kubernetes. They wrote in it house and released it to the public along with a hosted solution. Making it open source might even drive more sales than having it locked in since people can host there own kubernetes cluster that is supplemented by a cloud provider. Microsoft is also using opensource software as a value add with vscode. vscode makes it easier to write code and push it to a git server that deploys to cloud. Guess who owns github and cloud hosting services? Microsoft
In short vendor lockin is scary and people in IT industry are become more wary of buying software controlled by one vendor. The solution is to develop open source software or use open formats and make moeny based providing services around it instead.