How can we use MongoDb with postgresql?

Do internet companies such as Facebook or Google use MongoDB despite the AGPL license?

  • Internet companies don't use AGPL licensed code. MongoDB is AGPL licensed. http://www.mongodb.org/about/licensing/ 10Gen says this shouldn't be a problem since the database drivers are licensed under Apache. But if anyone else writes a custom driver, that would have to be licensed under the AGPL according to the AGPL. This means that the apps that call the driver would have to be licensed that way too? Is anyone afraid that someone will make a custom driver for MongoDB or that the AGPL license will blow up into lots of lawsuits that will harm all the corporate users of MongoDB? Their FAQ says that even though they are using the AGPL license, they "...promise that your client application which uses the database is a separate work. To facilitate this, the http://mongodb.org supported drivers (the part you link with your application) are released under Apache license, which is copyleft free. Note: if you would like a signed letter asserting the above promise please http://www.mongodb.com/contact"  Why would a company use a license like AGPL and then promise they don't really mean it?

  • Answer:

    Google has done their licensing homework and they specifically ban MongoDB. This is an excerpt from the AGPL Policy (I'm a contractor working at Google): Do not attempt to check AGPL-licensed code into [Google's source code repository] or use it in a Google product in any way. "Do not install AGPL-licensed programs on your workstation, Google-issued laptop, or Google-issued phone without explicit authorization from the Open Source Programs Office."

Dan Dascalescu at Quora Visit the source

Was this solution helpful to you?

Other answers

Disclaimer: IANAL, and seeing this from a non-US standpoint, so take this with a grain of salt. I would guess that most companies will not be modifying the server, which is the part covered by the AGPL (Tokuteks's case is obviously atypical). So if they do not add anything to the server, they do not have anything to redistribute about it. Regarding drivers, the wording in the FAQ is very peculiar: /supported/ drivers are released under the APL2, while the official Go driver is released under Simplified BSD, but guess what: it is not /supported/. However, I see nothing requiring alternative drivers to be thus licensed. The GPL part of the AGPL is not at issue here, since drivers are not linked to the server. The additional requirement of the AGPL is to distribute AGPL code providing a service over a network. For the drivers to be contaminated by this clause, they would have to not only use the AGPL code over the network, like a driver does, but also include AGPL code, which would be an obvious temptation for a C++ driver, to leverage parts of the server code like BSON serialization, or even just the headers. Barring this case, drivers are typically not linking/embedding AGPL code and should therefore be licensed under whatever other licensing requirements may apply. Not saying anything about other kinds of potential IP issues, likes patents or trademarks. Finally,  the AGPL is only one of the two ways a company can use MongoDB: most usage beyond development and very early stage startups will be using the software under the commercial license, which carries a cost (and brings extra features and services), but does not impose any redistribution clause.

Frederic G. Marand

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.