
Homebrew removes MongoDB from core formulas - codyogden
https://github.com/Homebrew/homebrew-core/pull/43770
======
elevenbits
I'm astonished at all the comments that vilify MongoDB Inc and then talk about
moving to AWS's MongoDB clone. What sort of twisted world are we living in
where a company makes a service, tries to sell the service, and then are
lambasted when they try to prevent a competitor from copying it wholesale?

Cloud providers have been able to stand on the shoulders of giants, profiting
immensely from millions of lines of open source code while giving little of it
back, and we seem to be largely fine with this. Will we be fine depending on
their services when the cloud providers become the new Oracle, free to raise
prices extravagantly when we have no other choice?

If MongoDB Inc can't compete in the enterprise cloud market simply because
they are not AWS (as mentioned by threeseed), what should their business model
be? Licensing to cloud providers would have been ideal, but the response from
AWS in this case wasn't encouraging. By boycotting MongoDB in this case are we
telling future innovators that their work will simply be stolen and resold for
profit if it gets popular? That scares me a lot more than some project
changing their license.

~~~
bad_user
We live in the world where we can see a _bait and switch_ for what it is.

MongoDB was advertised as being _Open Source_ and _Free Software_ ,
distributed under an OSI-compliant and FSF-compliant license. Now they are
trying to eat their cake and have it too.

> " _then are lambasted when they try to prevent a competitor from copying it
> wholesale?_ "

Because that's not what open source is about. Open source is about
contributing to the commons, such that your competitors can make a profit from
your work.

If your competitors aren't able to do that, then the software is not open
source. Period. And in this case, we should point out that MongoDB Inc by
owning the copyright doesn't have to play by the same rules, they aren't
beholden to the same rules as everyone else.

> " _If MongoDB Inc can 't compete in the enterprise cloud market simply
> because they are not AWS (as mentioned by threeseed), what should their
> business model be?_"

Why the fuck should we care what their business model would be? That's for
them to figure out.

But if they sell something as open source and they close source it, then we,
the schmucks that bought into it, will point out that MongoDB is no longer
open source and treat it as a proprietary piece that comes with the caveats of
proprietary software, like lock in, etc.

So I hope somebody forks MongoDB from the version when it was open source.

~~~
goatinaboat
_I hope somebody forks MongoDB from the version when it was open source._

That no one has done that already suggests that no one thinks it’s worth
doing. And it isn’t, Postgres is properly free, and more than surpasses Mongo
in all aspects.

~~~
nailer
Coming from Rethink and Mongo I don't like SQL. I don't want rows at all, or
documentation that assumes a table model. Having a JSON data type doesn't mean
you're a document store.

~~~
StavrosK
Postgres can do JSON. Does MongoDB have schemas yet?

~~~
nailer
The comment you're replying to mentions that Postgres can do JSON.

~~~
StavrosK
Ah, I see what they meant now.

------
orf
From their official formula: [https://github.com/mongodb/homebrew-
brew/blob/master/Formula...](https://github.com/mongodb/homebrew-
brew/blob/master/Formula/mongodb-community%403.4.rb#L9)

Every time I run `brew update` (or perhaps _any_ brew command), I make 6
requests to
"[https://downloads.mongodb.org/current.json"](https://downloads.mongodb.org/current.json")
(one for each version of the formula), and one request to get the SHA for
mongdb-shell?

This defaults the whole point of a formula - metadata describing an
installable. If that .json file is compromised in any way then suddenly you
are downloading anything from _anywhere_ with no checks. By embedding the hash
and the download URL in the formula, like literally every other formula does,
the download will fail if the release is modified. And there is a git audit
trail of any formula modifications.

No thanks.

------
thiscatis
Would love to see an overview of companies that fell into the mongoDB trap and
have / are migrating to another DB store.

~~~
Thorrez
What you do mean by the "mongoDB trap"?

Are you saying companies are hurt by the license, or are you saying companies
are hurt by software's behavior (e.g. consistency model)?

~~~
zxcvbn4038
A lot of companies got lured into using mongodb because it was so developer
friendly. It cost nothing and it was easy bring in the back door and
alleviated the need for thought.

Then their sales people started coming around and asking for insane sums of
money (like $10,000 per instance per year plus 100% markup on hardware to run
in AWS - support is extra). They were worried about amazon and others offering
a better so next they changed the license.

If it had been SQL it would have been easy to drop in another database. But
Mongodb is so different from anything else that you need a major rewrite to
get away from it. Postgres has some similiar functionality but it’s not drop
in. Amazon has a more or less public beta of DocumentDB which as far as I can
tell is a mongodb compatible interface to aurora backend - it works but
doesn’t have the polish of RDS yet.

~~~
geowwy

      > If it had been SQL it would have been easy to drop in another database.
    

Not true at all. Way too many organisations are locked into Oracle just
because it's too hard to switch to something cheaper.

~~~
willio58
Why is this? If Oracle uses SQL why can you not just export the database, make
some transformations, and import it into a PostgreSQL db for example?

~~~
Spivak
I feel like you’re imagining that SQL is more of a standard interface than it
actually is. No two relational databases are quite the same and you’ll be
stuck combing through your entire app looking for obscure syntax usage that
depends on Oracle specific extensions or quirks.

There’s no incentive to not extend or try to improve SQL semantics because for
proprietary databases it increases lock-in which is good for sales and for OSS
databases the extensions are genuinely positive and increase developer
productivity and you don’t feel bad about locking your users in because it’s
OSS.

~~~
goatinaboat
I think it is probably easier to port from one SQL dialect to another, than
from Mongo’s hokey JSON based query language to anything else.

~~~
statictype
Also not easy.

We tried to do a migration from Sql Server to Postgres.

Even went as far as building a parser/compiler to transform Sql. Certain
things are just too difficult to handle.

1\. Sql Server supports arbitrary sql statements in queries. Postgres does
not.

2\. Data types are not the same.

3\. Feature sets at the 'interface edge' between the client library and the
engine differ. For example, Sql Server queries can return an arbitrary number
of results.

It's true that Mongo uses a custom language, but with Mongo - you are unlikely
to have any significant business logic in your data layer.

Also their API surface is relatively simple.

For example, FoundationDB has a layer that mimics the Mongo API. Amazon has
one as well.

------
nevi-me
I understand the removal of non-OSS-compliant software from core
distributions, and see little controversy in that, as it's the risk of
changing a license.

What I don't understand is the many people who are talking about AWS'
replacement being a solution for people migrating from MongoDB.

From the comments, it seems:

\- it's expensive to use. Someone spent $15 for 2KB data over 3 days
[[https://news.ycombinator.com/item?id=20862196](https://news.ycombinator.com/item?id=20862196)]
\- it's only compatible with MongoDB 3.4, which seems not to be enough for
some people.

What are the reasons to move to AWS' very offering that MongoDB (and others)
are trying to prevent from making money off their investment? Is it a feeling
of 'betrayal' that the license has now changed?

MongoDB has had an attitude that the source for the community product is
available, but that they mostly develop their product using their core team.
[[https://www.techrepublic.com/article/mongodb-ceo-tells-
hard-...](https://www.techrepublic.com/article/mongodb-ceo-tells-hard-truths-
about-commercial-open-source/)]

So, did the change to their Server License thing result in people having to
pay for the Community Edition?

Is the move from MongoDB because it's incompatible with one's data needs (in
which case, why didn't one do enough research)?

Why move to AWS' offering instead of 'supporting' these companies? If AWS and
Azure thought to create MongoDB Compatible abstraction layers, then surely
they saw something useful/good in parts of the database? Then why punish the
companies that innovated in creating these technologies?

Lastly, the idea that companies will be fully-OSS and make money from unicorn
dust fails once those holding these opinions are on the driver's seat. How
many foundations do you donate to, that support the OSS that you use?

The current trend of continuing to want things for free from companies, but
being willing to spend an extra fee for a 'managed service' from a cloud
provider will hurt a lot of otherwise innovative companies in the coming
decade.

~~~
DangitBobby
If people accept that what MongoDB did with its license is acceptable because
the OSS model failed for them, then the viability and future of the OSS model
might come into question.

People tend to come to believe something organically and then later cherry-
pick facts and observations that back those beliefs up. So even if MongoDB did
what it had to do, or did what would otherwise be morally defensible in the
most popular moral frameworks (as I personally believe to be the case), people
who have a personal or emotional stake in the future of OSS will be looking
outwardly for a villain. If it failed, it must be a failure of someone who
crossed OSS. MongoDB seems the only choice for a villain in that regard.

~~~
nevi-me
I agree with your statement.

Rationally, MongoDB's decision made sense because of the real actual threat of
AWS and others offering alternatives (at various levels of baking) that seek
to undermine MongoDB.

If this is the path that we choose to take, we'll see more companies go back
to the closed source model (which MongoDB hasn't gone in).

------
zucker42
Serious question: can someone explain why the server side public license is
not an open source license, with specific reference to AGPL? Is it because of
the provision forcing the source code release of auxillary software used to
run the software as a service? As far as I can tell, it meets the FSF's free
software definition and the only that seems questionable in the OSI's open
source definition is point 9.

~~~
chrisseaton
> can someone explain why the server side public license is not an open source
> license

Depends on what you think 'open source' licence means. The source is literally
openly available. There are just some extra restrictions on what you can do
with it. The FSF and the OSI don't own what 'open source' means, of course -
the term predates them and comes from intelligence.

~~~
gwd
> The FSF and the OSI don't own what 'open source' means, of course - the term
> predates them and comes from intelligence.

Ref please?

The FSF was certainly around pushing for "free software" long before "open
source" was commonly used to refer to copyleft / permissive licenses. And the
sole purpose for OSI's existence is exactly to define what is and is not "open
source".

In any case, it is very important to define terminology and protect its use.
The goal of "open source" is certainly not to simply let people _look_ at the
source, but to let people _use_ the source in certain ways. People have
thought long and hard about exactly what the minimum standards are to consider
something "free software" or "open source".

You can find the core criteria for OSI here:
[https://opensource.org/osd](https://opensource.org/osd)

And the "Four Freedoms" for the Free Software Foundation here:

[https://www.gnu.org/philosophy/free-
sw.en.html](https://www.gnu.org/philosophy/free-sw.en.html)

~~~
chrisseaton
> Ref please?

Both ESR and the OSI will tell you this.

For example [http://www.catb.org/~esr/open-
source.html](http://www.catb.org/~esr/open-source.html)

> Yes, we're aware of the specialized meaning "open source" has in the
> intelligence community. This is a feature, not a bug.

The OSI tried and failed to trademark 'open source' \- because it's simply a
description.

[https://opensource.org/pressreleases/certified-open-
source.p...](https://opensource.org/pressreleases/certified-open-source.php)

> We have discovered that there is virtually no chance that the U.S. Patent
> and Trademark Office would register the mark "open source"; the mark is too
> descriptive

Maybe it turned out to be a bug after all!

~~~
gwd
While ESR's link establishes precedence, it doesn't actually tell me what it
means in an intelligence context.

From Wikipedia [1]:

> Open-source intelligence (OSINT) is data collected from publicly available
> sources to be used in an intelligence context.

IOW, the "source" in "open-source context" isn't actually talking about
"source" as in "source code", but "source" as in "source of information". Not
really related.

Whether or not they could trademark the term, when people in our community say
"open source", they specifically mean something which matches OSI or FSF's
definitions.

[1] [https://en.wikipedia.org/wiki/Open-
source_intelligence](https://en.wikipedia.org/wiki/Open-source_intelligence)

~~~
chrisseaton
> IOW, the "source" in "open-source context" isn't actually talking about
> "source" as in "source code", but "source" as in "source of information".
> Not really related.

ESR says _specifically_ that it's related - he says the relation is a
'feature' of the name, even.

~~~
pseudalopex
Some features start as happy accidents.

ESR was the president of the OSI when it published the Open Source Definition
and applied for the trademark. Justifying a weaker definition can’t be why he
called it a feature.

------
trpc
Can somebody tell me what is wrong is SSPL? I just don't understand what this
hostility is all about. A company creates a crucial infrastructure component
which is a database, open sources it, everybody can use it for free, cloud
vendors started just installing it on their servers or making clones of it and
making profit off it, everybody is using a component that took years and
millions of dollars to develop but the company that created it cannot even get
profit from its own product. I just can't understand why would a company open
sources its products if this is the result. The product is free to use, but
for profit entities using this product MUST pay the maker if they are using it
as a SaaS which is a zero effort operation.

This just doesn't happen in any other industry, if you go to a baker, you must
pay for the bread, you can't in most cases even ask how this bread was made or
know for sure that price was fair or not, and mind you this is just slice of
bread, while in technology it takes years of experience and knowledge just to
create something as crucial as a database, and yet people expect everything to
be free, very liberal licensing to even profit from the product without
sharing it with the original maker. I don't even like or even respect MongoDB
as a database, but the amount of hostility towards anybody trying to make
money off a FREE and OPEN SOURCE complex software is totally beyond me.

~~~
jakelazaroff
Software licensed under the SSPL is not “free” in either sense of the word.
It’s not free as in beer, because I must pay to use it. It’s not free as in
speech, because it violates Freedom 0 of the four fundamental freedoms [1]: I
can’t run it as I wish, for any purpose.

More practically, MongoDB offers their own managed hosting service. Are they
paying the Linux Foundation for the OS they’re almost certainly running? How
about nginx / HAProxy / Let’s Encrypt / whatever else they’re using in their
stack? This isn’t to say that there’s anything wrong with charging for
software, but it’s pretty hypocritical to point their finger at others for
profiting off free software whilst doing so themselves.

[1]
[https://en.wikipedia.org/wiki/The_Free_Software_Definition](https://en.wikipedia.org/wiki/The_Free_Software_Definition)

~~~
trpc
afaik the user doesn't pay for MongoDB, you can use it freely, read the code,
modify; if I understand correctly SSPL is basically AGPL/GPL but with clause
that cloud vendors that want to use this product to provide a SaaS version
must pay to the maker. I don't think this is any unfair esepcially if this
project was made from scratch by the maker and not a fork off another OSS
project.

~~~
jakelazaroff
Cloud vendors are "users", too. I'm not saying it's fair or unfair, just that
it's not free. MongoDB is of course within their rights to charge to use their
software, but they're not somehow being exploited by those who profit from it
without paying — after they offered it for free! — when they themselves profit
off the labor of _the same people_ without compensating them.

Put another way: Amazon is a corporate member of the Linux Foundation. Why is
it okay for MongoDB to profit off Amazon's labor without paying, but not vice
versa?

~~~
trpc
Okay, what if I want to offer total freedom to users but not for other
competing companies? There is no single license that can protect a company
that creates a FOSS product. It's just ridiculous that a company creates a
product for free and another uses it as is and sells it for profit by just
"hosting" it. Esepcially for the case of a database, the only way to make
money is by having managed service or licesning it to cloud vendors. I can't
think of any other way of monetizing such a product

For the case of Amazon sponsoring linux, it's in the very interest of Amazon
that Linux stays alive and active because all their billions from AWS comes by
running linux kernel as infrastructure, not to mention having the advantage to
influence the components being added and maintained that result directly in
more profit for them. Linux foundation is totally different in its structure
and goals from a for-profit company like Mongo.

~~~
jakelazaroff
_> Esepcially for the case of a database, the only way to make money is by
having managed service or licesning it to cloud vendors. I can't think of any
other way of monetizing such a product_

What about charging all their users? It's worked out fine for Oracle.

The current licensing scheme is fine, too. Again: no one has any issue with
Mongo charging their users! It's just not open source software.

 _> For the case of Amazon sponsoring linux, it's because the very interest of
Amazon that Linux stays alive and active because all their billions from AWS
comes by running linux kernel as infrastructure, not to mention having the
advantage to influence the components being added and maintained that result
directly in more profit for them._

The question remains, though: why is it acceptable for Mongo to profit off
Amazon's open-source contributions without compensating them (or at least
donating to the projects themselves), but not vice versa?

 _> Linux foundation is totally different in its structure and goals from a
for-profit company like Mongo._

I don't understand your point here. Mongo isn't owed anything extra just
because they've decided to structure themselves as a for-profit company.

------
mark_l_watson
I have a question: has anyone simply forked MongoDB from the time just before
the license change? Owners of open source software can change the license, but
can they change the license of old code?

~~~
zeta0134
IANAL, but this happens fairly often within the community. My loose
understanding is that code released under the AGPL remains licensed under the
AGPL; the license can't just be retroactively revoked like that. The company
may require that active forks adopt a new name and branding due to trademark
disputes, but this is a different matter not covered by the license.

I was _not_ able to find an active fork; the closest thing I'm finding so far
is here, but it hasn't seen any activity for 7 months:

[https://github.com/normousdb/normous](https://github.com/normousdb/normous)

~~~
mark_l_watson
Very cool, thank you. It seems like the original AGPL license should have
worked for companies like MongoDB. But, their company, they can do what they
like and lose users.

------
benatkin
With MongoDB's license there is another reason to migrate away from it. I
migrated an app from MongoDB to postgres. I ended up just using a varchar to
store the IDs. The Mongo style IDs are in addition to an integer primary key,
so joins happen with integers, but every time a user is shown the IDs, in the
URLs, it's a BSON ID. It hasn't caused any issues, performance or otherwise,
but there are thousands rather than millions of records. It's because of
Django, not postgres, that I decided to use varchars to store the IDs rather
than bytes or integers. Django is flexible but there are always tradeoffs from
going outside the framework. Finally, and this is my favorite thing about how
I went about it: all BSON ids have the column name of "id" and all integer
primary keys have the column name of "pk", whether or not they have a BSON ID
(through tables don't need their IDs exposed to the API).

~~~
ldng
PostgreSQL do have a variable unlimited length datatype : text. AFAIK, Varchar
is internally a subtype that bound the text type. So in extreme situations you
might even get a very slight performance advantage using text instead of
varchar.

~~~
benatkin
Interesting. When is there an advantage of using varchar in postgres, other
than limiting the field length?

~~~
nicoburns
I think never, except if you want your SQL to be portable to other dbs.

------
elamje
What’s the executive summary of what’s going on with Mongo, and why other
commenters are referring to using mongo as a mistake?

~~~
tedivm
MongoDB changed their licensed from an open source license to one that has
restrictions specifically aimed at busting up Mongo (the company)'s
competitors who offer managed MongoDB services.

These restrictions mean it is no longer an open source project. It is also
worrying for a lot of people that mongo was willing to change license terms
like this, as it means they may be willing to do so in the future if it brings
them more money.

Since mongo has reached the point where they're competing on license terms,
not on service or via their product, mongodb may not be the best choice for
someone starting a new project. At this point lots of other options exist,
with stable and open source solutions like postgres having document store
features built in as well. In fact for a lot of use cases postgres already
performs much better than mongodb, leaving the real question to be why anyone
would choose to use mongodb at this point.

~~~
colordrops
Couldn't someone just fork on the last fully open source version of Mongo,
similar to the genesis of CentOS?

~~~
ken
Following the links here: "mongodb and mongodb@3.6 do not build from source
anymore" -> "We gave up on this as we have no clue on how to fix the build, or
it would take too much time."

------
craigching
A lot of people advocate PostgreSQL as a replacement. Why not elasticsearch?
It’s also a document store with a good history.

At a previous job I shipped Mongo as the store (under AGPL) because at the
time the replication story for PGSQL was too complex compared to mongo. But I
reached a point where I was going to replace Mongo with elasticsearch and get
rid of Solr at the same time.

~~~
reaperducer
I may have a project coming up that will include a document store component.
It's in-house, with the maximum number of simultaneous users under 15, so
scalability that way isn't a concern.

However, the number of documents is large, and for some documents previous
versions will have to be stored, as well.

With Mongo out, do you have any suggestions? Is PostgreSQL the best option
here? I'm fairly new to this space.

~~~
edoceo
I do like this, millions of record, prime fields in the table, then a jsonb
column as the document-store. Just add a row for a new version. And extracting
detail from jsonb is pretty easy, usable in SqL queries and materialized views

------
holografix
Can’t we trace a clear line that says: “Here is my new tech. It’s FOSS you can
access the code and use it for free to build __other __technologies with it.
You may __not __simply provide my tech as a service and charge money for
that’s __my __biz model”

Example:

Here’s a fantastic new mixing machine. You can make your own for free and use
it in other applications such as making smoothies or cakes. You may not start
an industrial mixing biz and charge money for it. That’s my biz model.

~~~
OJFord
My understanding (from asking the same before) is that:

* Yes, but that's de facto _not_ open source, because all OS licences allow commercial use by definition;

* A licence isn't a magic bullet, you can have this model but if you're not prepared to enforce it it's useless.

~~~
filleduchaos
> Yes, but that's de facto _not_ open source, because all OS licences allow
> commercial use by definition;

The idea is probably that one would have to pay for commercial usage, which
absolutely is compatible with open source.

------
worldsayshi
What are the best alternatives to mongo db going forward?

Are there any forks with momentum?

~~~
danenania
My current thinking is to consider postgres as the default choice, especially
for an MVP. It can handle just about any MVP-level scenario and helps you
avoid over-engineering.

But if you really do need NoSQL to deal with scalability or more advanced
requirements, I like DynamoDB. I like it not because it’s user-friendly (it’s
not very), but because its limitations are very clear and out-front, and if
you try to do something it’s not suited for, you’ll quickly realize it’s
hopeless.

Mongo is the opposite—it gives you the impression that you can use it for all
kinds of things, and it _feels_ easy in the beginning. But without careful
planning, it will lead you merrily into awful traps, because its underlying
limitations are glossed and patched over by the api rather than being made
explicit.

------
PeterZaitsev
I think this article is very relevant to this discussion

[https://opensource.com/article/19/8/open-source-
licensing#co...](https://opensource.com/article/19/8/open-source-
licensing#comments)

------
mlevental
asked this on a sqllite thread before but: anyone know a single file nosqldb
that has good python bindings. i know I could just write to json or something
but I'd like something that supports queries. right now I'm using MongoDB and
it's completely Overkill

~~~
diek
It depends on what you mean when you say you want it to "support queries", but
then also ask for a "nosqldb". It really depends on whether you want a full
query grammar (in that case, why not SQL?), or if a key/value store is enough.

I use lmdb pretty extensively. It is single-file (well, it has a lock file)
key/value store, can be read-from/written-to by multiple processes, and embeds
nicely. It has Python bindings, but I've only used it from C.

[https://symas.com/lmdb/](https://symas.com/lmdb/)

~~~
mlevental
i'm imagining something like the sqlite for mongo. ie you can do aggregations
and nested k/v queries and filters and things like that.

------
olliej
Play stupid license games, get stupid prizes?

------
whoevercares
Should I sell MongoDB? In around $29 last year and have seen 450% return...
The concern was always it becomes next X

~~~
bongobongo
If you are asking questions like this you probably should not be buying
individual stocks

