MongoDB found that objectionable, and changed the license such that Amazon would either have to pay, or stop using it.
Amazon stopped using it, and started using its own in-house implementation instead (presumably because it was cheaper to develop it than to pay MongoDB).
So, MongoDB got exactly what they asked for. It's just that, when they forced Amazon to make a choice, they didn't expect one of the options they gave them to be viable. They were wrong.
I don't see how Amazon is in the wrong here. They are no longer using MongoDB for free, as the authors demanded. They did not reuse any code. They are not advertising their replacement as MongoDB, either.
Is it because of API compatibility? But the notion that one cannot reimplement a public API for the sake of compatibility is in and of itself extremely hostile to the F/OSS ecosystem, given how many products in it are reimplementations of proprietary APIs.
I don't really agree there. The service is called documentDB and this is how they describe it [1]:
> Amazon DocumentDB (with MongoDB compatibility)
> Fast, scalable, highly available MongoDB-compatible database
And the first 2 sentences:
> Amazon DocumentDB (with MongoDB compatibility) is a fast, scalable, highly available, and fully managed document database service that supports MongoDB workloads.
> Customers use MongoDB as a document database to store, retrieve ...
You have to read all of that pretty carefully to understand that it's NOT MongoDB (a term they mention 5 times in the first 4 sentences). And if you read it carefully it seems to say it's compatible with MongoDB, whereas the Techcrunch article states it's only compatible with the MongoDB API from 2 years ago.
I disagree. If I see "Blah-compatible" I know it's not blah.
We launched A1 instances with our Arm-Based AWS Graviton Processors to increase the selection of technology for our customers. It has nothing to do with demands of vendors, and everything to do with increasing choice, providing access to extensive technology ecosystems like those Arm has been building with their partners, and lowering costs.
Do you have a citation for that? AGPL is usually not considered business friendly or a corporate "allowed by default" license, even for internal use.
Contrary to the headline and articles inference I havent seen any indication that MongoDB source or IP is or was actually being used. As you note this all comes down to API compatibility and tangled notions of "proprietary" slash copyright.
But then there's even less reason to attack Amazon.
Completely agree with your conclusion, but is this not exactly what happened in Oracle v. Google?
So Oracle "owns" the Java API, but Google was allowed to clone that API to make Dvalik work with Java source code.
The same should be true of MongoDB's API. MongoDB Inc owns the copyright, but if someone wants to make a compatible API, they should be covered under fair use.
Which AWS service are you referring to exactly? AWS's existing json document DB is called DynamoDB and has nothing to do with Mongo.
The difference between AGPLv3 and the new SSPL applies to all work Mongo releasaes going forward. As intended, that difference will make it difficult for AWS to maintain compatibility, which the article points out is limited from the get-go.
They used Dynamo, and their white paper on it predates Mongo. Amazon was always an Oracle shop and now have dropped that too.
My old company begged AWS for years for Mongo, looks like they finally got around to it.
Self hosting MongoDB has always been a pain if you only have a small amount of data in it. The scaling goes one host, master/slave (which existed, though people would argue with you that it didn't), to 7+ separate hosts if you're going to build it properly (2x mongoose with DNS across them, 3x config cluster, 3x data cluster).
That's a hell of a jump for someone only using Mongo incidentally. You can cheat and combine multiple pieces of the cluster on single hosts but if that fails you can then get into weird multi-component failure issues.
I suspect the drive for DocumentDB was more because customers were asking them for it
You're just talking narrowly about Amazon in this comment. What you said makes more sense if you broaden it to commercial users. They might have known FAANG companies, esp Amazon, would just ditch their software if they switched licenses. They might be targeting the companies that can't or won't build a MongoDB knockoff. The companies that will actually pay for their product. That's a huge market.
There's no point in, or place for, spirit of the system vs letter of the system discussions or calls to morality. Mongo does not deserve to survive / exist if it can't make it's offering better than a competitors.
Would Mongo even exist as a company if it had launched as a contract only vendor? Pretty much not... so it can't demand to play both sides.
Judging on your other comments, it doesn't look like you're familiar with MongoDB's historical shoddiness. I don't agree with you on practice in this case or any case. If MongoDB's company can't out-execute, then they should have never made their product open source to begin with (and in that case it probably would never have gotten as popular as it did). That's the bargain you have to make to try and monetize open source software -- you don't just get a business for free.
But beyond that, I don't agree with you on principle in this case, because I have nothing but disdain and scorn for MongoDB. Both MySQL and Postgres have fine support for unstructured data now, and provide the entire relational toolchest as well. That's not even getting into other multi-paradigm databases like CockroachDB or ArangoDB. I struggle to think of a use case that it is more appropriate for than another option; and indeed, every time I have had to deal with it in production, I have never thought that it was anything but a poor decision.
That switches the subject from “do they add value?” to ”are they the first?”.
I would think the existence of other companies offering something similar is an indication that it adds value.
However, MongoDB selected a free and open source license. This was always in the cards. They went with AGPL to keep the source maximally open for end users, but that never protected their revenue stream. (Some JS SDK companies used it for that purpose, where it makes some sene, but a DB is very different.)
But if they had started with something proprietary uptake would have been very likely much less. And people would have continued to use mysql or Cassandra if they really needed something "webscale".
If only they had! But MongoDB is 1% technology and 99% marketing, they had no technological moat to speak of.
See also: Docker.
This feels like a MongoDB sponsored post. How badly would you have to fuck up to be considered a poor imitation of MongoDB?
In any case I don't see how having their own hosted version of MongoDB is a middle finger to open source, but Aurora SQL/PostgresQL isn't. Is Cockroach a middle finger Postgres? I don't consider this any more a middle finger than the SSPL.
Especially when MongoDB is itself no-longer open source.
In fact, AWS is providing a service compatible with MongoDB 3.6, which is open source. In a way, AWS "forked" MongoDB 3.6 after the creator of MongoDB made the software proprietary. Isn't that what Open Source is supposed to provide?
I literally laughed out loud at this. Thanks for the humor.
I don't entirely disagree with your overall assessment, but it could just be a case of clickbait journalism, rather than payola.
I recognize this article is about a product offering of AWS, and not their internal policies towards contributing to open source, but the two are linked in my mind and I'm not all surprised to see a headline like this.
"I was working for an aerospace company in the early 1970s when someone got a copy of the original Adventure game and installed it on our mainframe computer. For the next month my lunch hours, evenings and weekends, as well as normal work hours, were consumed with fighting the fierce green dragon and escaping from the twisty little passages. Finally, with a few hints about the plover's egg and dynamite, I had proudly earned all the points in the game.
My elation turned to terror as I realized it was time for my performance review. My boss was a stern man, more comfortable with machines than people. He opened up a large computer printout containing a log of hours each programmer spent on the mainframe computer. He said he noticed that recently I had been working evenings and weekends and that he admired that type of dedication in his employees. He gave me the maximum raise and told me to keep up the good work."
I knew it was time to start looking when I was informed that I had to get prior permission to do ANY open source contributions even on my own hardware on my own time. That's just not feasible logistically and above and beyond the general "don't write open source that competes with us or on our our time/hardware without permission" rule most reasonable companies have.
My experience, in my part of the company, in 2019, is that stuff I do outside "work" is my own business. I contribute to open source projects all over the place.
As long as I actually do my day job during the daytime, woe betide anyone (other than my wife and family) who tells me what I should be doing with my non-work hours, on unrelated software projects.
They even let me release my skunkworks Pidgin Linux client for Chime under LGPL (although I did have to ask permission for that one as I did a bunch of it during the day).
In fact even for work hours when I'm working on Linux, we've made progress. Once upon a time you had to file a ticket to legal for every patch series that was submitted upstream.
Now we have a policy (again, in our part of the company) that your internal code review submission must have a comment on the upstream status of your patch — is it already upstream, is it going upstream, and if not, WHY NOT?
And all you need in the way of permission to do so is to get the nod from myself or a number of other people right there in that code review.
Is it perfect? No.
Do we still have to catch up and make it as easy for other projects (like Xen, in my day-to-day work) as it is for Linux? Yes.
Is it a massive improvement on what it was like before? Hell yes.
This attitude seems kinda common, unfortunately. The critical issue is probably what the boundaries for 'work for hire' are. CA law [1] offers protections. Spolsky [2] offers detailed real-world context.
[1] http://law.justia.com/california/codes/lab/2870-2872.html
[2] http://www.brightjourney.com/q/working-company-intellectual-...
Why do we put up with this!? The foundations of our industry go back to how much early developers share with one another!
I like their services in AWS-land and they have really good solutions. They probably treat their developers better as long as they can be exploited. But if there is another service with comparable features, I generally don't have to think very long.
Why games especially? That seems to be the one area the would be absolutely free of any conflict of interest with amazon.
Why games are different than other areas (e.g. why aren't web services called out separately with their own policy while games are? I'm not sure.)
edit: For those down voting instead of just disagreeing provide a company and their policy. All the companies I've worked at have been the same as Amazon more or less and all my friends have similar employment clauses.
There were no exceptions allowed.
It was considerably more restrictive than any company I've worked at elsewhere.
Even Amazon employees in CA should be exempt from this policy.
These days I'm self-employed and renting myself out to large companies, and this has never been an issue. They only care about the work I do for them, not about what I do in private.
"If we put the software in the public domain, somebody else would be able to make a little bit of changes and turn that into a proprietary software package, which means that the users would be running our software, but they wouldn't have freedom to cooperate and share."
"And what we do is, we say, this software is copyrighted and we, the authors give you permission to redistribute copies, we give you permission to change, we give you permission to add to it. But when you redistribute it, it has to be under these terms, no more and no less. So that whoever gets it from you also gets the freedom to cooperate with other people, if he wants to. And then, in this way everywhere the software goes, the freedom goes, too. And it becomes an inalienable right to cooperate with other people and form a community."
Bruce Perens, on the choice of the GPL for Debian:
"Uh, it's one of the few software licenses that was written from the standpoint of the community rather than from the standpoint of um, protecting a company or um, as is the case with MIT and BSD license, performing the goals of a government grant program. Uh, and the GPL is really unique in that. It's not just a license. It's a whole philosophy that, I think, motivated the open source definition."
MongoDB tried to protect its company's profits, and as a result, Amazon [and its users] now have a proprietary product rather than an open source one. Could have gotten free fixes from the biggest lab in the world, but instead they're getting jack squat. And since Amazon's product is proprietary, now users and the community have less freedom.
Linus is asked at the end if he's bothered that he's not cashing out on billions of dollars of use, and he basically doesn't care. He just wanted people to work on the software. If Linux had the same licensing scheme, it may have remained a hobby operating system.
Wasn't this one of the main points of contention, though, in addition to not purchasing a commerical license? Amazon not upstreaming (m)any of the fixes?
Linus has an annual salary of $10 million, https://www.therichest.com/celebnetworth/celebrity-business/...
Making a business choice to not buy licenses from a single for-profit company doesn't really have anything to do with open source in general.
That's a bold statement to make against AWS services.
This scenario is one of the many where (F)OSS explicitly protects downstream users: company reduces availability, user forks. It just so happens that the traditional players (the small, indie user va the big, bad corp) are actually mirrored (big, bad user vs small, indie corp). This has been the ugly reality of OSS for more than a decade now, and there seems to be no way to align the interests of “big users” more closely with upstream. Before the switch last year, MongoDB already used the most “aggressively collectivist” license available, and still it didn’t protect them from rich freeloaders.
This is also the other side of the coin in the Google vs Oracle debate about apis and copyright.
You offer a free software package to the world, so that anyone can use it as they see fit.
Some guy uses your software package.
How exactly has that guy became a freeloader in this story?
Why? Because the freeloader increases the demand side for the software (more users translate to more feature requests, more bug reports), without increasing the supply side (resources for people who work it).
This puts pressure onto the project that is hard to sustain in the long term and MongoDB took a step to fight it.
The difference is that now a lot of software is run as a service, which wasn't the case back than.
So, imagine MongoDB was used some 20 years ago (and it was GPL, as AGPL wouldn't make as much sense back then). A big company comes along, makes some modifications to the base product and tries to sell it. Guess what? They have to give the source code (including their additions) to whoever buys their version (including, potentially, Mongo inc.) so they would still be on a somewhat level playing field.
Enter software as a service. Since the GPL says nothing about software served via network, MongoDB goes under AGPL, which has provisions for this scenario. Amazon is not selling software copies, they're selling a service (hosting, integration, etc). So, even if they make additions to the source code and give them back upstream, they're on a completely different level from the small player (Mongo inc. or whoever else) and, since they're not differentiating on the code alone, win in the long run.
This all to say, it's not the promise/premise of FOSS that is flawed, it's just that the playing field changed.
At least a few months work there. Even for Amazon.
It didn't work.
This undoubtedly had been in the works as Aurora for MongoDB.
The timing is suspect, sure. But one look at Aurora for MySQL and Aurora for PostgreSQL will tell you that AWS would've gotten around to it regardless of licensing.
For someone to release a major software package under an open source license with particular terms, and then to get angry when other people enjoy that software under the terms that YOU specified, is just nonsense. You aren't happy with the way things played out, because you didn't really understand the types of activities that were possible or maybe just didn't think about it.
Look, it's their software and they can re-license it as they see fit. But to vilify AWS for using their open source software legitimately under the terms they licensed it under is offensive. That is giving the middle finger to open source.
How exactly the author of this article can write something that finds fault in the company using software legitimately under an open source license, and not with the company who is re-licensing their software to a non-OSI license? Who is truly giving the middle finger to open source?
The open source system is great. Many individuals create the content and share it. There has been a great tolerance for companies like Amazon that exploit - not use but exploit - this community. While I don't have enough experience to know if MongoDB's response was a good one, I do think it is time for the community at large to begin a continuing discussion of what to do when large companies like Amazon are bad citizens.
Open source thrives on being ... well open, and it is important to retain that openness within the community.
What's really funny about their not-mongodb as a service is they will inevitably roll over any piece of software third parties host on AWS too if they think it makes enough money. Your SaaS is just another project for some team waiting on their next. They have already done that for 10,000s of physical products on Amazon.com that were sold by third party vendors who became redundant via Amazon releasing similar products under their own brands.
Can you please clarify? I'm researching AWS and am interested in the historical practices of the company, but I'm not sure what "roll over" means in the context you used it.
Including companies like Adobe, eBay, Expedia, Sony etc.
But I don't exactly expect the highest quality and reliability from Adobe, eBay, etc.
For searchable structured data, I'd probably go with elasticsearch. It scales very well and you can turn off indexing and use it as a document store.
I am a huge fan of postgresql and the more I use it the more awesome I find it, so I'd probably use postgresql's JSONB column type for unstructured data if that's a requirement. You can pair it with citus and make it scale quite well.
For pure document storing there's RethinkDB which performs well and does not lose your data as MongoDB does.
What are they referring to?
From my perspective, Amazon rarely open sources their work. It's one of the reasons I would never want to work at Amazon. It's very clear they have no love for technology outside of making a business out of it.
AWS is not giving open source the middle finger. It is giving the middle finger to a project that was once open source and has decided to be no longer open source.
Because they don't have to focus on development they can divert their resources to marketing, adding the syrup on top to 'ease use' and ride the hype wave while the original developers are dismissed as 'technical' folks who do not understand marketing when the fact is they do not have time left over from development, or the resources.
It's perfectly legitimate to expect to sustain yourself while building open source products and projects. Unfortunately we are flooded with one sided superficial perspectives and short term narratives that look at open source projects as if its a crime to expect to make some money while not even examining slightly the parasitic models of cloud providers and others who in effect hijack open source projects with marketing.
The end game is few can compete with the resources, reach and engineering of behemoths like AWS, Azure, GCP and others. And at the customer end the cloud is unavoidable and thus will only see increased adoption. This is not only going to affect open source but dismantle entire groups of software and hardware ecosystems.
The only way forward seems open source projects that leverage these cloud platforms to provide some additional functionality, but these projects will be intimately tied to these platforms and not 'open' as we understand the term.
I’m not convinced that should be the case. Any business endeavor carries risk, whether its basis is open source software, closed-source software, or any other product type, and one shouldn’t have an expectation of any level of success.
There are fortunately many success stories relating to open source software, so from my perspective it’s unclear that anything needs to change.
snerk Well, if it doesn't lose your data or have broken replication protocols for years, then it'd be a poor imitation, so I'll give the CEO that one.
Maybe I'm wrong. Anyone feel free to correct me.
Also, it's not like Amazon is not giving back to the open source community (https://aws.amazon.com/opensource/)
As for the most typical use case, web apps, see their FAQ:
> The copyleft condition of Section 13 of the SSPL applies only when you are offering the functionality of MongoDB, or modified versions of MongoDB, to third parties as a service. There is no copyleft condition for other SaaS applications that use MongoDB as a database.
https://www.mongodb.com/licensing/server-side-public-license...
Compare their prior, public clarification on the scope of AGPLv3:
> Note however that it is NOT required that applications using mongo be published. The copyleft applies only to the mongod and mongos database programs. This is why Mongo DB drivers are all licensed under an Apache license. You application, even though it talks to the database, is a separate program and “work”.
https://www.mongodb.com/blog/post/the-agpl
Much as Kernel developers published a statement clarifying and limiting the sweep of GPLv2 copyleft, Mongo published a statement clarifying and limiting the sweep of AGPLv3 copyleft.
I've heard from a former Mongo employee that Mongo wrote several letters to users and vendors, assuring them that AGPLv3 didn't require release of their app code.
If you're a small open source company with a services business model, how do you stop someone like AWS forking your code, making a few changes they don't share with you and basically becoming the de-facto supplier of maintenance and services for your tech?
Yes, there is. It's what MongoDB did. It's not Open Source.
> If you're a small open source company with a services business model, how do you stop someone like AWS forking your code, making a few changes they don't share with you and basically becoming the de-facto supplier of maintenance and services for your tech?
You have a business model that does not work. You've been lying to your investors claiming that you have one. That's exactly the MongoDB story.
That’s incorrect. MongoDB’s Server Side Public License differs from Commons Clause and some of the “community” licenses from other database companies we’ve seen. The latter prohibit hosting programs as a service for others. SSPL explicitly permits that, but triggers copyleft, so the service rigging code must be released under the same terms.
Is there any evidence for this? I assumed they forked the last Apache 2.0 version of Mongo.
It's not just Open Source who will get nasty signs from amazon. They already have too much power for one company and the more power they'll have the less they have to abide by rules normal companies/humans have to abide by.
Isn't that the whole point of releasing software under a FLOSS license?
Also it's clear that you have zero knowledge about Mongodb hosted services. Because otherwise you would know that very good supported hosted services exist which are 100% compatible with AWS (beside MDB Atlas).