Hacker News new | past | comments | ask | show | jobs | submit | page 2 login
The race to replace Redis (lwn.net)
759 points by chmaynard 47 days ago | hide | past | favorite | 496 comments



I feel copyleft licenses look more favourable at this point of time. What’s the value of more free/business friendly licenses if you can’t guarantee that the same license will apply for all the future releases? Looks more like a bait and switch policy.


The future is never guaranteed. Much less if you have no paid contract with the people building and maintaining the floor underneath your feet.


AWS, GCP have assurance that they won't need to pay for their Linux infrastructure. What is it if it wasn't for copyleft licenses(GPL)?


What assurance is that?


Am I right in understanding that the relicensing was possible because of the CLA, not just because of the BSD license? Would a permissively licensed project that didn't use a CLA be vulnerable in the same way?


A key concern is that BSD isn't viral, so anyone can take BSD Redis and fork it into a commercial offering. If you want to, you can. The Redis trademark prevents anyone but Redis the company from calling their fork "Redis".

A CLA may impact relicencing, it depends on the terms. A simple CLA may only say "I am the owner of the code and I release it under $LICENSE". The current Redis CLA also has a copyright grant, which gives Redis the company greater rights.


“Viral” just means that the license has a “no additional restrictions” clause, not that you can’t make a commercial offering out of it. That’s why GPL and AGPL don’t really solve the problem.

And the problem with the trademark model is that AWS, and especially Microsoft, already have established brand recognition with the people who sign the big SaaS and support contracts. The people who know what a Redis is are just nerds with no money, the real big shots do everything in Microsoft Excel.


A permissively licensed project without a CLA would be similarly vulnerable, because the BSD license allows them to make releases that include your code under a stricter license. To prevent them relicensing you would need both a strong copyleft in the license and no CLA/copyright assignment (like e.g. Linux - which can't even move to GPLv3 even if they wanted to, because it would be simply impossible to get all contributors' permission).


No, since you can include BSD-licensed code in non-free software with just an attribution. The only difference between relicensing Redis from BSD+CLA to SSPL and BSD to SSPL is that the former would've had a more detailed REDISCONTRIBUTIONS.txt.


GPL mandates that all derived software must carry the same license. No need for CLA, as I understand it.


The copyright owners of a GPL software can do whatever they want with future versions, even going proprietary. The problem is that all the owners must agree on that. That's why some GPL software only accepts contributions by people that give copyright to a single maintainer entity. An example is FSF's copyright transfer, which to be fair is more nuanced than that and has also other purposes.

https://www.fsf.org/bulletin/2022/fall/copyright-assignment-...


I misunderstood your comment. Yes, CLA's make it possible to change the license. I guess CLA's won't work for GPL'd software.


All this outcry about license switch coming from "community" feels funny. After all, if there is the "community" then they can take the last open-source version and keep developing it themselves, right? But most "communities" are about "take, take, take", not "work, work, work". They often upset only because someone declared they aren't going to work for free any more.


Author of the article here. There may be some scenarios where there's a company just tossing code over the wall under a FOSS license and people complain when it stops. This scenario is not that.

The company now known as Redis did not invent Redis, it started as a company trying to make money hosting other peoples' work. After it finally hired the creator of Redis, it specifically promised not to do what it has just done (move away from three-clause BSD as the license for Redis core) at least twice.

In the development cycle from 7.0.0 until a few days ago, Redis isn't even the majority contributor to the codebase. The largest single contributor is from Tencent. (All of this is in the article.)

If Redis had been doing all the development, had not promised it wouldn't move away from the license, then I might agree that people have little to complain about.

But this situation isn't as you've suggested here where a community is all about "take, take, take" from a company that's been doing all the work. The company was founded on the idea of trying to do what it now complains about Amazon doing, and their claims that cloud companies do not contribute is clearly false -- just look at the code contributions.


What did that guy and tencent contribute to so much of recently?


to answer my own question, i didn't realize tencent had their own cloud offering with all the major software available a service, guess they/him just do general development and bug fixes.


In this case the community is the biggest contributor to Redis. The ones that "take, take, take" is Redis the company. Your comment seems way out of place in this light.


Good. So now Redis Inc is in trouble because they have to replace community work with their own. If community does most of the work, then what's the problem?


The problem is too many people are announcing OSS forks so it’s hard to align development efforts and users are confused. No one’s begging Redis Labs (which didn’t create Redis in the first place and only took over the brand with VC money when it was already popular) or whatever they’re called now to keep the bug fixes rolling. They only account for 20-50% of recent development anyway (50% if you attribute all “unknown” contributors to them), with the other 50% from (predominantly Chinese) cloud companies allegedly “pirating” their software, according to some.

I don’t typically ask people to RTFA because that’s against the rules, but you would have known all of the above if you bothered to read the article.


What you’re describing isn’t a problem. Why does it matter if there are too many forks? Development also doesn’t need to be aligned to begin with.

It’s like complaining that there are too many implementations on GitHub of the same thing.


> It’s like complaining that there are too many implementations on GitHub of the same thing.

You're spot on. People are bellyaching that the world doesn't operate according to their arbitrary rules.

Perhaps I'd be happier in a geocentric universe, but it doesn't make a non-geocentric universe bad per se.


Yeah, it is incredible how the whole free software movement turned into a bunch of entitled folks that want to be paid for their work, while refusing to put down any penny for the folks that make their tooling possible in first place.

At the same time big corps use it as carte blanche to basically pirate software in a legal way, while following the letter of the licence.

Going back to the open core/demo versions (aka Shareware/Public Domain/Trials) is the only sustainable way to make a living.


> Going back to the open core/demo versions

aka, just sell software, rather than make it open source.

What is being balked at is the idea that you can use open-source as a foot-in-the-door marketing and growth hack, which you then reap after some level of popularity/network effect is reached. Some call it bait and switch.

Blaming big corps for "leeching" is just self-serving. They are doing exactly what the license allows them to do - a license for which was chosen at the start to allow for it! If you expected to be paid to make this software, don't opensource it.


Or perhaps open source it in exchange for being paid, something that developers working for corpos which contribute to (FL)OSS already do.


None of what you say is happenening in this case. Unless by "entitled folks" you mean Redis Inc.

The community has been doing the heavy lifting over the years and Redis Inc has been trying to reap the benefits off of that by providing the software as a service. Which the community was fine with. Turns out other companies with deeper pockets for infrastructure can do the same. Now Redis Inc is trying to save their broken by design business model by changing the license. This casts a whole lot of doubt on the future utility and licensing of the Redis project. And this is what the community balks at.


Who is the community?


You keep making comments about this, as if Redis was build from scratch by the company that is now making it closed source.

They bought an open source project, and now that the original founder has stepped away they're trying to squeeze it for all they can.

The "big corps" that you claim are using it to "pirate software in a legal way" (a) have been contributing to the formerly open source redis project, and (b) are now specifically forking it to keep maintaining it as open source.


Doesn't matter, they are the rigthfull owners of Redis and the author has freely given ownership to them, and has been paid for.

Supermarket bills cannot be paid with pull requests.


Supermarket bills don't get paid by broken business models either. If Redis Inc never existed, Redis the software wouldn't be much worse for it. I'm starting to wonder who the entitled is in the first place.


It's only broken when they go out of business. Just because you don't like the business model, doesn't mean it's broken.


> rigthfull owners of Redis and the author has freely given ownership to them

By using BSD license Antirez has freely given it to the whole world, not the name Redis but the code. No matter how big the corporations, the cloud providers are just using that code the way Antirez intended when he used the BSD license. You can't blame the cloud providers for that.

> Supermarket bills cannot be paid with pull requests.

But one can become famous by writing quality open source software and this fame can be used to get very high paying jobs.


> Supermarket bills cannot be paid with pull requests.

Nor with increasingly unnecessary and niche features aimed at "enterprise" customers, it seems.

One could probably even argue that buying the rights to the name of a popular permissively licensed project is a terrible way to pay said bills.


One can argue a lot of things, and that's what we're doing here.

How is it terrible?


It's apparently terrible because it didn't work.


> the whole free software movement

Eh no. What an overly broad generalization to read. Whether it is enough to make a living is another question, but that does not mean one must paint all of the communities the same color.


The fact that after 20 years this has become almost a daily discussion theme speaks for itself.


The problem is companies externalising development work on the boring parts of their software as "community edtions" and the like. That is a very distinct category of open source project and the only one that any of these discussions revolve around.

You seem to believe that all open source projects are in this category. That is not the case. You also seem to believe that there is always one company doing the most work and everyone else is just leeching off. That is also not the case.


I for one don't like it when companies do a bait-and-switch. It's fine to develop proprietary software, the problem is when you grow a user/customer base based on the fact that your software is open source and then turn it proprietary.


With Redis it isn't even a case of "grow a user/customer base based on the fact that your software is open source and then turn it proprietary"

It's "buy the naming rights to an already popular piece of open source software and try to make a quick buck"


Trust no one. Be self sufficient.

I, for one, will take the risk, reap the benefits and move on when factors are no longer conducive to my goals.


So I take it you endorse the Amazon-backed fork? Amazon too strives to be self-sufficient, and has moved on from Redis because the factors are no longer conducive to its goals.


If it's legal, it's not piracy. It is merely availing oneself of an opportunity. If the authors meant to license the software differently, they should've done so.

I'm sure that (FL)OSS core/demo versions is not the ONLY sustainable way to make a living. There is no need for hyperboles.

You don't even need to author software to sustainably make a living. Don't limit yourself.


That doesn't seem like a very reasonable takeaway from an article which describes almost too many people announcing that they will take the last open-source version and keep developing it themselves for everyone else to use.


If you only take, obviously there is no reason to complain. Now the problem is rather when contributors (those who "give", not those who "take") have to sign a CLA. Then the company who gets their copyright takes their work for free, to later use it in a non open-source project (assuming they changed the license, like Redis did).

I think it is valid to find this immoral. The solution is pretty simple though: do not contribute to open source projects that require you to sign a CLA.


Using the code later in a non open-source project can happen also with MIT/Apache licensed code. Even without CLA. Does it mean that company that does it is immoral?


If you use MIT/Apache code that doesn't enforce a CLA, the contributor keeps the copyright on their contributions. So no, that's not immoral, that's part of the license the contributor chose for their contribution (the contributor could make a PR and license their contribution with e.g. GPL: that would be their right).

What is considered immoral is to take the copyright from the contributors without giving any compensation.


No? They create a fork that maintains the existing terms. No cla required.


That is not the problem with the CLA (of course you can fork). The problem with the CLA is that the company then uses the contributed code just like if it was their own, even though they did not pay for it.

Developers should be aware of that and, personally, I think contributors should never accept to sign a CLA. If the project requires a CLA, don't contribute.


Yep, that's exactly it. Of course it makes sense: making requires several orders of magnitude more effort than using. But if a project changes/goes down, the community often just moves elsewhere, nothing major lost from their perspective.

And I think Open Source is based on the very few who decide to take it upon themselves to be the ones spearheading a specific project/task and share it with everyone else. Maybe it's not every single time me, sometimes it's you, sometimes it's Lucy or Mark, and that's how the roll keeps rolling for everyone.

So if a project goes down and nobody comes up to replace it, either it wasn't worth much or this is the time nobody took it upon themselves to do it (yet).


That's a dumb take. That completely ignores opportunity cost of such actions. You can't just spin up a fork like that; there's barriers to entry, network effects, etc which prevent that from being a simple solution.


You really can just spin up a fork


It's not "the community". It's "well funded startups".

People who use open source are very entitled. They'd be very angry also if the license was changed to GPL or AGPL.

I doubt most of this people have meaningful contributions to FOSS.


One thing I think people underappreciate is license compatibility - the projects which bundled BSD redis very likely can't bundle SSPL redis without changing their own license, or not at all if some other components are licensed with license not compatible with SSPL

This is actually the good news as it makes it all but certain there will be well maintained Open Source Redis alternative.


Interesting that around 40% of the commits to Reddit is from Chinese companies (Tencent 24.8%, Alibaba 6.8, Huawei 5.2, Bytedance 2)


Why is that interesting?


Not so much interesting as it is normal these days. Chinese big tech is much more OSS focussed than US big tech in my experience.


Because tencent consistently won Pwn2own and other CTF competitions until their government turned protectionist/isolationist and disallowed them from disclosing 0days to the world?

https://cyberscoop.com/pwn2own-chinese-researchers-360-techn...


There's also DragonflyDB


Yeah but if you’re going to the trouble of switching, probably pick something that actually outperforms Redis/Redis Cluster. Which basically leaves you with Garnet.

Redict is a pointless endeavor. Just stick with Redis 7.2 before the licensing change. Maybe change the binary name if it makes folks feel better.


Isn’t this exactly what Redict is? Plus a license change to prevent what happened to Redis from happening again.


DragonflyDB doesn't have a better licensing situation.


Dragonfly isn't open source nor free software. Rather a pointless switch if you ask me.


it is free and source available...it's BSL which is slightly more permissive than SSPL that Redis adopted


Maybe it's good for GitHub, GitLab, etc. to be as open and liberal as possible with its definition of open source, but I think there is definitely an argument to be made that businesses making source available without actually open-sourcing it should pay to have it hosted. GitHub didn't become proactive about asking users to add licenses to repos until far into its existence, and there's plenty of code there that doesn't have an explicit license, but I think participating in the open source community should actually require that your source is open. License proliferation is already an issue, but adding non-open source to GitHub seems especially dangerous to me. The license should be highlighted in bright red with a big note saying that users are not allowed to do what they will with the source code.


As many others pointed out before, Redis Labs did not create the project, they started to provide Redis as a hosted solution just like other cloud providers, and with time gained control.

Redis Labs is not the only contributors to the project, Tencent and AWS contribute as well.

For Redis Labs the open source license was a distribution channel which they benefited tremendously.

I'm not an AWS fanboy but they operate some hosted solution significantly better than the companies building the products, at least the core offerings, this is what happened with Elastic and MonogDB.

It is Redis Labs prerogative to change the license, but they can also build a product around Redis that will drive customers to them instead of AWS, an offering that will be hard to replicate.

IMHO making a business that is "reselling" server capacity that was bought from AWS and trying to make a profit, can come back and bite you.


It reminds me of the berkely db situation, where they(sleepycat software at the time, but now I think it is owned by oracle) changed the license to try and sell it, and everyone just kept using the last bsd licensed version.


I’ve started keeping tabs on forks and alternatives: https://taoofmac.com/space/protocols/redis


Far more involved people are in this thread, but my 2c. Forking of software isn't a big issue, but of the community is. If new software was R++ which company will close and original Redis is now in hands of the community everyone would have been OK. The community is built organically and has contributed a lot over the years. Now, it will have to be built again where the efforts would be diluted in multiple forks till they gravitate toward one. Maybe AWS, Tencent, MS will back one and we'll have to settle on a version backed by corporates.


Engineers have to eat too.

Nothing wrong with charging for support.

I love passion projects as much as anyone, but there is a reason they are hobbies, and people need to keep a day job. Eventually it does get tiring to do support for free.

Edit:

Ok. I was talking OSS generally. I guess Redis is being bad actor if they are taking OSS work and running away with it to get the money, and not compensating the contributors. That is very wrong. I don't know history on Redis and assumed it was the contributors that founded the company.


I think the main issue is bait and switch. You start with a license, get lots of external contributors who are working for free, get ecosystem built around it for free and then change because you want to be paid.


Bait and switch sounds wrong in this context. It's not like they planned this whole thing fifteen years in advance.


Does it matter if you intended to do something nefarious all along, or if you just now saw an opportunity to be nefarious? All that matters is that you are doing something nefarious.


I agree.

I'm not sure how nefarious this Redis move was. I guess I was assuming any move from 'free', to 'paid', will be met with some outcry regardless of how seamless they can pull it off.

  Or in other words, it is always a messy transition?


The issue is they took the name with them. If they forked it with a new name no one would have cared.


My issue is the OSS contributors that were not paid for their work, but their work will be monetized now.


That's been going on for 30 years with proprietary BSD forks. That's what they signed up for.


I'd love to be corrected here, but my understanding is that the enterprise support and pro features model can be a pretty good business.

Big deployments generally need really good support and help to overcome scaling challenges. Who better than the library maintainers to offer that, and your customers have deep pockets.

Then on top of that, you run a business which basically creates proprietary Pro and Enterprise versions of a product which has tooling to operate the project at scale or in high uptime environments.

Then you offer your own cloud versions of the product as well (which I think Redis has been doing).

But in none of these cases are you creating a disincentive for anybody to use/adopt your product. You're simply creating value around the pain points.


I agree. People here always seem to react badly to companies that provide something for free and now want to make a bit of money. It’s weird because they themselves work in tech and have to earn a living to put food on the table. Having no way of making money isn’t sustainable.


The problem here is that this isn't putting food on the table for the people who actually built the software.

It's a company surprising everyone by pocketing the money from other people's hard, unpaid work.


The license change is only for future versions, though. The work already put in remains open source.


Then don't make an open source hobby if you want to pay the bills with it. Or accept you're going to have to be a consultant for the project to make $$. I don't expect jack shit back for my open source contributions nor do I care if Amazon uses it.


The sincerest form of flattery is when AWS decides to come up with a big consortium to displace you with some open source.

Incidentally the most effectively way to stall a project according to the CIA is to have a huge guiding committee with clearly diverging interests.

Redis will win because it's focused on its users. It's competitors will lose. Like OpenSearch, like OpenCL etc.


I see valkey getting a lot of attention recently, as it is a newly founded alternative. What is the major differences over using TiKV which has been around for many years? https://www.cncf.io/projects/tikv/


I'm disappointed that FOSS discussions like this always devolve into profit-focused arguments.

It's no wonder our "freedoms" in the software world have slowly but steadily been shifting to look exactly like our "freedoms" in the physical world: artificial scarcity apportioned by the few using their leverage over systems which put you in a steel cage if you don't play along.

And here we are, arguing with each other using the terms of those who seek to enslave us to their control. The fact that these billion and trillion dollar tech companies even exist is a testament to our failure.


Netflix created a fully peer to peer distributed Redis compatible DB https://github.com/Netflix/dynomite


I always wanted to try Pelikan Cache, but it’s hard to take a risk when there is Redis. Maybe now it’s more palatable.


I'm actually sympathetic to the cloud provider angle. As of right now, that is the natural trajectory. The majority of high-value customers are going to go through a cloud provider.

Maybe some kind of new license is in order. Open source, but preventing cloud redistribution. I don't know, I can imagine the issues with that as well. You want AWS out, but you probably still want the small up-and-coming CI/CD tool in.


Can’t I just keep using the old version?


Why don't the distros just take the last free version and fork from there.


Isn't that what redict is?


I see that it is. So then I don't see what the hoopla is about at all.

The software is all there. Some dickheads forked a proprietary version. They got the name, which will be their consolation prize in their voyage to irrelevance; nice knowing you.

Meanwhile, what everyone uses marches on.


I believe that the hoopla is about the CLA. It feels immoral for an open source project to accept contributions but require a CLA, and later change the license for all those contributions that were never compensated.


If a GPL-ed project requires copyright transfers and then spins a proprietary version, it makes sense for people to be upset.

But Redis was BSD or BSD-like, no? Proprietary forks can happen with or without CLA, so it is moot.

I would say rather the opposite. If a developer contributes to a BSD (or similar) licensed program (under that same license of course), then at that point they are letting anyone anywhere do whatever they want with the code, as long as copyright notices are preserved. Then, if someone forks a proprietary version of the program (in a way that complies with that developer's license for those files) and that developer gets upset and tries to revoke the copyright license, that developer is the bad actor, not the forkster.

In the context of BSD-like permissive licenses, requirments for CLA, I think, would only be a form of legal safeguard against such situations, where people change their mind.


> If a GPL-ed project requires copyright transfers and then spins a proprietary version, it makes sense for people to be upset.

Yes you're right, I thought it was a copyleft license.

But now it is source-available with a CLA. Which in my opinion is a good reason to fork. I would definitely not contribute for free to such a project.


I so very much wish that Datomic had been licensed this way.


Why?


Because in the absence of source access, your query planner is "call one of Rich Hickeys goons".


Am I insane or can't a company just fork it from before the license change? I mean, what even needs to change in it? I assume 95% of people were just using it for the features it's had since the beginning anyway.


> Am I insane or can't a company just fork it from before the license change?

The article mentions half a dozen such forks. So not insane, maybe just a bit lazy ;).


The question - just like always in cases like this - is which forks will get long-term support. So just like with Terraform, it's probably a good option to stay on the last open source Redis version and wait to see how things shake out, assuming that there are no critical security vulnerabilities in that version of Redis. Alternatively, be prepared to jump around between a few forks if one turns into a dead end. Or move to something else altogether, but that's a much bigger undertaking.


Why would Snap support Valkey if they have KeyDB?


There is an easy solution not just for this, but for other potential masses: Just go with MIT license and make money with support


How does this stop you from "getting Jeff'd", i.e. when AWS takes your own source code and competes with you?


"Getting Jeff'd" is only an existential crisis if your goal is to own the majority of the pie. Postgres's contributors come from a bunch of different companies who all manage to make enough money off of Postgres to pay them [0]. That is the only financial metric that really matters for funding a FOSS project.

The problem with these companies is that they actually were trying to make large returns for shareholders rather than simply earn enough to keep paying the developers.

[0] https://www.postgresql.org/community/contributors/


You're vastly overestimating how much companies want to pay for support.


And if they do pay for support - it will be to Jeff Bezos and not some raggy startup of five.

Support is usually for big corporate clients, and the Cover Your Ass principle works in full force there.

"No one ever got fired for choosing IBM".


They wont get totally cut out though - Jeff Bezos will send the bugs they find while servicing their $10mil a year service contract to the raggy startup of five to fix over a weekend between their 3 jobs while sustaining themselves on the most expensive food they can afford - a bowl of discount ramen.


About as much as it's worth, but not enough to give your VCs their x100 profit.


I wonder if there is a use case for an open source permissive license that also cannot be changed. Several companies have started off with MIT in infancy and then switch to something else later when successful to improve monetization.

I mean, I get it, everyone wants to become billionaire, but best to be honest about it up front.


Why don’t we try to fix the “cannot be used for bezos yacht”-licenses instead of shunning the numerous companies of especially databases who want to do good in a meaningful way? Source available is good, better than proprietary which is what we get with aws, but still not enough. People are legitimately afraid of rug pulls, like sneaking in essential features into paid offerings. I think a lot of the skepticism comes from those unknowns.

Afaik the non-discriminatory use is the only ideological hard line. I guess people can debate that forever, like with GPL and copyleft and such. But my edgy take is that most people don’t really care about deep ideology yet want something that promotes a healthy hacker- and small-business friendly open source ecosystem. Ideally, a simple, well-understood license that restricts “re-selling your product” and not much more, that you can slap on a project without a legal team, just like with the MIT license.


> that you can slap on a project without a legal team

The thing is, this kind of license is only really relevant to the kinds of projects that do have legal teams.

If you're writing a hobby project you probably shouldn't waste time worrying about feeding the AWS machine, because the odds that you'll get noticed and used are tiny. Just pick GPL or MIT and be done with it.

If you're participating in a large decentralized project like Postgres, then having a big player like Amazon providing managed hosting is actually a huge plus because you get lots of contributions from the big players [0]. There's very little downside for a project like this, and lots of upside.

The only type of FOSS project that needs an "AWS can't use this" license is a project that is driven by a single for-profit company which decided to make their business model "provide a managed solution layered on top of AWS". Unsurprisingly, it's hard to compete with AWS on price when you're using AWS itself as your vendor, so these companies tend to be the ones that switch licenses to tell AWS they're not allowed to compete.

These companies almost certainly have their own legal counsel and they represent a tiny minority of FOSS projects, so it's not obvious to me that we need a new standardized anti-AWS license. Maybe we should instead acknowledge that "managed-hosting-supported FOSS database" is an impossible business model and try something different next time.

[0] https://www.postgresql.org/community/contributors/


> The thing is, this kind of license is only really relevant to the kinds of projects that do have legal teams

So you want to advocate that every future database / infrastructure company needs to burn part of their runway to hire lawyers to do the repetitive work of making sure they can both try to be open and try to continue to exist? Plus we, the users, get to try to decode reams of legalese instead of using a convenient three-letter handle for an industry standard, like GPL or MIT? This does not seem ideal..


Please read to the end:

> Maybe we should instead acknowledge that "managed-hosting-supported FOSS database" is an impossible business model and try something different next time.

The business model these companies chose was fundamentally broken. It's only fundamentally broken for a specific class of backend tooling.

I believe that future database/infrastructure projects should continue to use the FOSS licenses we all know and love and find a sustainability model that works without compromising the freedoms that make free software free. Postgres, Linux, SQLite, the BSDs, and many other projects in similar spaces have led the way.


People need to make money somehow. Developers who spend years creating, maintaining, and continually improving an open source database (or other project) used by millions deserve compensation. This doesn't apply as much to Redis Labs since they swooped in much later, but the general principle of trying to monetize your project with source-available licenses doesn't feel unethical to me.

You're right that it's probably not a great business model most of the time, but what is a good business model to collect some of the value you've produced from dedicating years of your life to something loved by millions of people? It's certainly less sketchy than monetizing a free service with ads, or something.


> People need to make money somehow. Developers who spend years creating, maintaining, and continually improving an open source database (or other project) used by millions deserve compensation.

Look at the list of contributors to Postgres that I linked to. The vast majority of them are employed to work on Postgres, some by big tech companies, others by smaller managed hosting providers and consultancies.

That is a sustainable funding model for an open source database project. What isn't sustainable is building a business around the idea that only your company will ever profit off of (and thereby fund) the FOSS project. The whole point of FOSS is that both the work and the gains are shared with the whole community.


> This doesn't apply as much to Redis Labs since they swooped in much later, but the general principle of trying to monetize your project with source-available licenses doesn't feel unethical to me.

Yes, monetizing with a proprietary license, whether source available or not, doesn't seem unethical to most people outside of Free Software ideologues.

“The licensing model isn't unethical but competing ones are” isn’t why open source licenses became popular over proprietary (including source available) licenses, the fact that they commoditized the underlying software, enabled competing orojects evolved from the same codebase on essentially equal terms (which also allowed a competing project to fully replace the original if the original at some point failed the community) and, as hosted offerings became more common, the zero licensing friction for hosted solutions, that's what did it.

It does mean charging monopoly rents for a hosted service isn't a viable way to recover development costs and pay returns to VCs, but until fairly recently, no one was trying to do VC-backed startups around single open-source products with that as their whole business plan, and the arguments as to why that would be a bad idea were well developed by the mid-1990s


There is no requirement to make money to have a successful open source project.

That being said. Monetizing open source is fine so long as people are up front about from the beginning. People are upset because switching the license is effectively changing the rules in the middle of the game.

It is like going out to a restaurant and in the middle of your meal they change policy from having free refills to charging per cup. Either policy is fine, but changing policies is a scumbag move. A lot of people would have never sat down to eat there if the extra drinks weren't going to be free. Especially if free drinks was the sole reason a lot of them were going there.


> Developers who spend years creating, maintaining, and continually improving an open source database (or other project) used by millions deserve compensation.

Redis Labs can start by compensating its external contributors (Tencent, Amazon, Alibaba among them) if they care about fairness this much.


Don't forget it's dependencies like the Linux kernel developers or GCC etc.


There's many things that I don't like about how open source works, but non-discriminatory licensing is not one of them.

In fact, the concept of the four freedoms as necessary parts of a more fundamental freedom is one of the things that I value the most about the free software/open source world.

In hindsight, I think that the probability that things turned out the way they did in this regard was relatively low, but the ideological drive of GNU and RMS made the world see the problem from a philosophical perspective rather than a practical one (even among people that don't fully agree with RMS/GNU/FSF).


The best idea I've come up with is a license which only grants the rights to a natural person to use the software otherwise it is identical to the MIT, GPL or AGPL, whatever your cup of tea is.

If you're a corporation then you need to buy a license.


Certainly not a new idea. As recently as early 1990s I licensed shareware that had terms requiring corporations to pay for a license with different fees and/or restrictions as those for individual, non-commercial users. Somehow this ideal was lost. Today, software authors seems allegiant to so-called "tech" companies, not to individual, non-commercial end users. As a non-commercial end user, I would prefer to use versions of open source software that are _not_ receiving contributions from so-called "tech" companies. But I never see software licenses that say, in so many words, "If you are Amazon, Google, etc., then you need to contact the author for a commercial license." I used to think back in the 1990s that open source software was aimed at least in part at giving individuals an option to use software outside the control or influence of large corporations. This type of software does not feel as if it has the same goal today. It feels like it is literally _made for_ those large companies, not individual, non-commercial end users. Software authors seem delighted to engage with the companies, but generally prefer to avoid engagement with non-commercial end users.


No, a non-commercial license is not a natural born person only license. If you're a human you get to use the GPL to your hearts content. If you're a corporation you do not.

It's not a hard concept to understand, but it does mean people can't steal from the commons so they spend a lot of time trying to not understand it.


I would have to look at the terms to understand. Your comment just reminded me of those sharware-era non-commercial licenses. That's all. Did not intend to suggest the license you mentioned is similar or the same in any other respect than having different license terms for commercial entities versus other users.


This could be an interesting idea, but how would this constrain incorporating the licensed software in a larger piece of software? Either as a library, or a component like a Docker image?

Would it be "viral" in the sense that, if I want to publish software that internally uses a Docker container running software with such a license, my own software can be used only by natural persons?


Yes, you will have to publish under a license with the same clauses.

Not because you are distributing it, but because only natural persons can run the software.


This is not a new idea... i mean its so old it was called out as being "not free" back in the 80s by the gnu project.


The GNU project has failed at getting source code to users so badly that despite owning a half dozen GPL based devises I have no access to the source code of any of them.

At this point listening to them is at best pointless and at worst actively harmful. This is what happens when the last time you worked at a real job was some time in the 1980s.


Have you tried? Did you write a letter to the vendor asking fot source code? Did they refuse?


There exist shared-source licences which do this (https://prosperitylicense.com/ is almost what you describe, but it's the one I can recall of the top of my head), but you can't (by definition) have a open source license like this.


> re-selling your product” and not much more

That's not what AWS is doing. AWS is selling management services. The fact that managed DBs are as popular as they are says this is a significant value add.


> That's not what AWS is doing.

Well yeah technically the product is free but the value comes largely from unpaid labor. That needs to change if we want a healthy small business sector around larger open source products. It’s not based in opinion or ideological conviction on my end, but rather watching this frictionous and awkward transformation to BSL-style licenses happen over and over with small-mid-size companies who are building valuable products and want to be as open as possible while running a business.

> The fact that managed DBs are as popular as they are says this is a significant value add.

Indeed, and that’s a good thing, because it means a path to a sustainable business model is feasible! However, if you subsidize the product (make it free and open) in order to make it back in management fees, then you need legal rights to it. It could be “you have to use $PROJECTs own management product” but that’s quite narrow thinking. It’s a win-win for everyone else if mega-players like aws can provide their own management but they will have to rev-share with the project owner, on their terms. That’s a battle-tested model that works in all kinds of sectors, with much smaller actors.


And that's also how DB companies try to monetize. So a hyperscaler offering this directly really undermines your entire business. In the past you could offer a Enterprise version with support, but with the move to the cloud that market is shrinking and Amazon is eating the new market themselves


Perhaps we need a different way to fund database development (not necessarily a single company monetizing it).

If the service you provide is hosting DBs, you are are at an inherent disadvantage competing with hosted db offerings form your potential customers' cloud provider. Even if your product is technically superior in every way, you are another entity they have to do business with (billing, support, contracts, security evaluations, etc.), which adds friction, and either you host on your own infrastructure, which means higher network latency, and network costs to get data to and from your customer's cloud, or you have hosting options that run inside all the major cloud providers, in any regions your customers use, which means you (or your customer) ends up paying the hyperscaler for the infrastructure, and you have the added complexity of having to know how to manage it on multiple cloud platforms. And there there is also the fact that it is much more difficult for you to build integration with the cloud's IAM or other services.

Basically, most cloud customers would rather use a service that is part of the cloud platform than from another provider. Ideally, instead of competing with the hyperscalers, they would sell some service to the hyperscalers that have the ir own hosted services. But I don't know how to get there.

As a brief sidenote, AFAICT this isn't what happened with the hashicorp license change, for them it seems like the pressure largely came from startups, not the big cloud companies.


> Perhaps we need a different way to fund database development (not necessarily a single company monetizing it).

We have several in use by long-running open source database projects that have not felt a need to jump on proprietary source-available licensing, even though firms like AWS are indeed using their code and selling services.

AWS (and other big firms with hosted services) are also sponsoring those DBs with code and/or money, but in many cases the basic model predates the big push to the cloud, and other downstream businesses were doing that before AWS and other cloud hosts.


What you're sort of proposing is cloud SaaSaaS. AWS would build out hooks for providers to manage the DBs they sell so they look like part of AWS. The main problem is AWS already has most of the services most of their customers want, so there isn't a big market opportunity.


> And that’s also how DB companies try to monetize

Open source DBs have been around a while, though. A minority of them trying to pay the bills with monopoly rents on hosted services is… much newer. Its how VC-backed DB-as-central-tech startups try to monetize, and, yeah, if you are going to do that, you need a proprietary license.

But don’t expect people to treat your DB like an open source DB, then, either. You can be Oracle instead of Postgres, but you can’t also expect to get treated like Postgres, instead of Oracle.


Define "fix". By definition you cannot have an open source licence which says "cannot be used for bezos yacht". Either you accept that, and don't rely on exclusivity for income (which really what the whole relicensing thing is about), or you don't open source your code (and accept that not being open source is a problem for some people). Open source + exclusivity for income is an unstable state, and really only works if no-one else competes with you (e.g. a specific niche), or you have some other means to enforce it (e.g. Red Hat limiting access to source to its customers, and not renewing contracts if they share the code).


> Define "fix".

It’s early. Everyone is confused. If I could define it, I would have provided a defintion.

At this stage, it’s about acquiring requirements and looking at prior art. And being humble about the solution space. No? If you don’t think there’s any problem today, then argue that point.

> By definition you cannot have an open source licence which says "cannot be used for bezos yacht".

By definition by what definition? There are already disagreements about what open source is, long before these business models. The problem solving comes first, and then there may or not be a debate whether about whether the solution fits better into an existing definition or a new one.

> Either you accept that […] or you don't open source your code

But why? Is this an intrinsic duality or an anccidental/historical one? Or is it about preventing scope creep of the open source term? The latter is easy to solve - don’t call it open source. Or at least defer the debate.


> It’s early. Everyone is confused.

No, it is not, it is decades in, in a well-understood area. Some VC-backed firms (and the VC’s backing them, who see this as critical beyond the immediate firms) want to trade on the idea and popularity of open source without its substance because open source as has has been known for decades is not a viable foundation for the kind of business model that they would like, but has at the same time secured the kind of mindshare in the market that makes it difficult for proprietary software to achieve the kind of rapid ramp-up that provides the timing and combination of returns they want. So they’ve decided to spend a lot of effort making everyone feel confused at some ginned up new threat to open-source, which is not a threat to open source, not something that open source community hasn’t known about for decades, but just a problem for a bait-and-switch business model in which software gains traction trading on the cachet of open source and then rakes in monopoly rents that avoiding is one of the benefits to users of open source licensing.

They want users to see them like Postgres, but they want to milk users like Oracle. That’s the problem – a marketing problem for proprietary software vendors. The attempt to sell confusion is an attempt to conceal that that is all the problem is.


Dislike of VCs as much as the next guy, but is this a representative picture? Many companies I’ve seen have been genuinely interesting, like SurrealDB, CockroachDB and Hashicorp. Are you saying it’s all a long bait and switch game?


In some cases I wouldn't be surprised, in others sure maybe the founders did believe in open source at some point (there are definitely individuals who claim to have never changed their opinion, but their writings would suggest otherwise), but either they've left (voluntarily or not) or simply they gave away control to others who are only in it to make money.

As always, Chesterton's fence applies: all of the 10 points of the OSD were widely debated at the time (as was its predecessor, the Debian Free Software Guidelines), so it's worth explaining why the issues raised then no longer apply.


> By definition by what definition?

By the "Open Source Definition":

https://opensource.org/osd/


Right. It’s a public benefit org based in CA. I very much appreciate what they do, but I don’t think they own or should own the term. In either case, it’s a moot point because it’s just a term definition. The important thing is to find a good model that promotes the same or very similar benefits we get from traditional OSS but in an evolving world.


> Define "fix". By definition you cannot have an open source licence which says "cannot be used for bezos yacht"

FOSS acceptance is a grey area. Something has been tried with the AGPL, which is FOSS, however, it has been deemed not to provide adequate protection by companies creating similar products (while, ironically, being considered poisonous by companies using them), so the SSPL was created, but it hasn't been accepted as FOSS license because its intent was unclearly defined (http://lists.opensource.org/pipermail/license-review_lists.o...).


I think you'll find that the vast vast majority of us don't care about the whole "cannot be used for bezos yacht" problem when we contribute to free software.

I contribute with no expectation of monitory gain and absolutely zero desire for some random foundation or company that's part or almost always created later to make any money. If some contributors want to make money become consultants the "amazon problem" isn't a real one.

I love when Amazon or Google or whoever starts working with a project I'm touching it means it will normally get high quality contributions.


OP's "cannot be used for bezos yacht" problem is about discriminatory licenses. If you don't care that eg Amazon can use your software, there is nothing at odds with what OP sees as a problem (discrimiatory licenses that violate points 5 or 6 of the OSD[0]).

[0] https://opensource.org/osd


How do you make money?


I work a normal job.... Open source is a couple of hours a week at most. It's a hobby for me some months I do nothing other I crush bugs like it was my job.


The problem is that big OSS database projects have teams of paid developers working on them and they want to make their money back. You can do this by offering paid support or a hosted offering. Having someone like Amazon take your product and build their own hosted version really cuts into that revenue.

Now, Redis was AFAIK pretty much just written by antirez and maybe it could have stayed that way, but even exceptional individuals clearly want to move on eventually and you'll likely need a team of maintainers. Distributed data products are complex and need people who contribute more than nights and weekends.


The best open source software is developed by unpaid people. Even the ones with companies around them, the best work is done in the first phase when everyone is still unpaid.

The "cuts into their revenues" part usually mostly affects their ability to keep developing the non open source parts anyway, their SaaS dashboard, their billing, etc.

Take redis, you could never change it again and it's fine. There's no need to support anyone, it's complete software that stands on its own.


Until the discovery of a log4j-equivalent, then suddenly it's not fine.


> Source available is good, better than proprietary

“Source available” is a subcategory of proprietary, not “better than proprietary”.

> But my edgy take is that most people don’t really care about deep ideology

I think most people that orefer open source to proprietary software either care about the business benefits open-source provides over proprietary (including source-available) software or have an ideological affinity for Free Software, occasionally both.


The problem is that in the minds of FOSS people, you might as well try to argue that you want more proprietary software.

The "major platform hijacks our code for the web" is a valid concern, but the FOSS people have always kinda gone "well fuck you for having these concerns". That's... I guess fine enough when the majority of FOSS wasn't part of a SaaS stack, but now that the majority of big name libraries and tools are, it's becoming clearer and clearer that the OSD is just too lacking for those concerns.

To be clear, this isn't a defense of SSPL or similar anti-Bezos licenses (the best one I've seen is the BSL, which transforms into a traditional OSS license after X years if you want my opinion), moreso an observation that there's a clear need here that can't be met by OSD. Paying developers on top of the FOSS model is hard; doing support favors entrenched suppliers because of the CYA problem (this is why AWS has the advantage they do) and I'm pretty sure that even if you do the support model, it usually just doesn't pan out.

The main reason 90% of these licenses suck is far moreso because lawyers will draft contracts and licenses in such a way for you that they'll always give you the advantage. The SSPL being borderline impossible to comply with is by design for example.


I'm much more sympathetic to a company that starts out with this kind of license than one who changes the license after accepting contributions under a more permissive license, which is basically a bait and switch on those developers. It's even worse when the company previously promised not to do such a thing, as is the case with redis. And this is especially bad because the company that is now called Redis didn't even create the database, they took over an existing project.


A bunch of people are working on this from different angles. It's in a chaotic phase right now but it will probably consolidate later.


So you're suggesting the game engine model, you're free to use this software for whatever until you make $x from it?

Unity was like that before they screwed it up, I have heard of other systems as well but not sure since it's not my cup of tea.


I believe this is the goal of https://faircode.io ?


The reason these licenses "can't" be fixed is because the OSI approves open source licenses and Amazon is their second biggest corporate sponsor.

If they approved SSPL they'd probably have to lay off a staff member or two.


I’m usually pretty ambivalent when a company decides to move to a license like BUSL. Sure it’s not “free” - but practically it only affects the likes of AWS from freeloading while making extraordinary profits. Especially true when a given company started the project. I understand why some hold strong feelings on the principles of OSS. My perspective is we’ll have fewer nice things if we allow the likes of AWS to cannibalise successful services.

But I feel no such sympathy for Redis nee Labs. It was never their project. They took over stewardship and then effectively stole the project for themselves. They’re not even the dominant contributor to the core product.


Seems similar to what Elastic did few years ago [1]. I kinda understand their motivation. It's not theirs originally, but they had antirez working on it for 5 years as their employee. They are making some contributions [2], I wish GH had a way to see such an insight by company affiliation. On the other hand, AWS and likes can easily fork pre-license-change version and spin it into its own product. However, I am fairly certain that AWS Elasticache is already such a thing – their own fork that diverged enough from the upstream and they are not eager to share.

So I view it as every major cloud provider with redis offering has its own fork. Except that Redis Labs also owns the original name. But it can go on as a stand alone project, like MariDB was spawn off after MySQL acquisition by Oracle.

[1] https://news.ycombinator.com/item?id=25776657

[2] https://github.com/redis/redis/graphs/contributors?from=2019...


AWS did not launch their own spinoff alone, but instead joined the Valkey project by the Linux Foundation[0], alongside many other major contributors:

> Industry participants, including Amazon Web Services (AWS), Google Cloud, Oracle, Ericsson, and Snap Inc. are supporting Valkey. They are focused on making contributions that support the long-term health and viability of the project so that everyone can benefit from it.

Seems like a good alternative to a single company's spinoff: Many major providers working on this same project should result in everyone benefiting from it.

https://www.linuxfoundation.org/press/linux-foundation-launc...


I don't have any inside knowledge, but I can't believe that they don't have an internal fork of Redis for Elasticache.


I agree with your points min general but want to share my experience and maybe some counterpoint.

Being a customer of the redis labs' hosted solution, we noticed several issues:

- RLs solution is way more cost effective than AWS's

- RLs solution is not even close to elasticache in its ability to scale

- when issues occur the organization internally moves incredibly slowly so simple issues can turn into prolonged outages

Moving to this licensing model will make it possible for them to better invest in these things. That said, given the quality of their offering and lack of investment in the actual redis platform, why would anyone continue to use redis after the license change? The cloud providers can fork off their own version and never look back!

I think they're shooting themselves in the foot here.


> RLs solution is way more cost effective than AWS's

Its not cost effective if the service causes extended outages as you mentioned later.


Wasn't AWS a major contributor to Redis? How are they "freeloading"?


I'm pretty sure ElastiCache has been around longer than Redis Labs too, so it's not like AWS undercut them, plus RL got a ton of free market research from it


In this case that’s true and why I said I don’t think it applies here. Typically it does though.

Open source services are in a weird spot. They spend tonnes of money developing it and big providers are able to cannibalise as soon as something becomes popular at very little cost to themselves.

I think we do need something between fully free and fully closed where cloud providers pay some kind of licensing. It’s a problem worth solving.


Do we need to "FIX" opensource? I am being serious here. It seems like people aren't getting it. Open Source is about openess and the ability to modify. Yes, people can lose money to cloud provider hosting but why does an Open Source project need to make a lot of money?

I say alot because its not like they can't still make money. They can still consult, they can still offer support or hosting but because theyre not making millions they want a "new" license.

Its stupid. you solve the itch then your done unless your doing maintance. people making open source software like paid software, constantly adding new features and changing things to justify their existance. You dont need millions in devs if your just solving a core problem.


Are there even any non-VC-backed companies with those issues? Whenever this drama and forking happens, it seems to be venture capital.


I'd be more interested in the race to build a business model that works with open source and venture funding, myself.

A grand unified theory of software goods funding, if you will.


I wonder if software really deserves its own economics.

If you haven't read Hal Varian's Information Rules, I highly recommend it. Check the publication date, then read it anyway, then reflect on the publication date when you're done. I found it very worthwhile.


Thanks for the recommendation, I downloaded it & started reading and yes it's a treasure trove.


Yes, this is a great read. After that many years it still influences me. However it is not that kind of book you read before going to bed. It requires intense studies to take something out of it.


Such a business model exists and it's extremely well proven, and it powers the majority of major open source software: build a proprietary product or service, and open source any component that is more of a cost than it is a unique selling point of your system.

Do you need a faster compiler, or a better OS, or some cluster operator just to get your widget factory working? Don't build those in house, instead find others with the same problems and create an open source project together to work on them.

But don't try to sell open source software. It's essentially impossible to do that, it has been tried time and time again and success is rare, and huge success is basically unheard of (RedHat being probably the one single exception).


> Such a business model exists and it's extremely well proven, and it powers the majority of major open source software: build a proprietary product or service, and open source any component that is more of a cost than it is a unique selling point of your system.

Sure, it is the commoditize your complement strategy [0]. But that doesn't help get complex open source products to market, it only helps with tooling.

Maybe you are right and there's no way to directly pair the freedoms of OSS with the capitalism of VC backed startup.

0: https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/


Yep. Been wondering where this is headed with the recent YC batch posts claiming they are gonna be all opensource and make money on cloud offering


Maybe we instead need a model where FOSS is not about profits for anybody, and is just a passion of love, from a large community of amateurs doing it for the technology and fun.

Projects could still be funded by community users, but "venture funding"? That's how projects turn to shit.


I agree, but what I think is curious about the whole situation is that you can also see it strictly as a market failure.

It's a very pure example where parties in competition each that have a use for some kind of software can shortsightedly develop their own versions of it in-house, but that duplicates a lot of effort. They'd be better off getting together with their competitors and collaborating on a shared version that suits their needs, avoiding duplicating effort and all benefiting from each others' contributions. They could do this by direct collaboration or by funding an independent organization that fulfills their needs.

Sure, this can go badly if there's a large difference in scale between the different parties and some can muscle others around. But it and similar models do work out at the scale of the Linux Foundation, Khronos, down to Mastodon, GitLab, Blender, Krita, Forgejo, even arguanly projects like Bitcoin Core.

There isn't the structures to facilitate this kind of regime shift. But there should be.


In such a world most of the open source software you’re used to wouldn’t exist (or would be much less complete) and you’d be forced to work with and use proprietary systems most of the time.


>In such a world most of the open source software you’re used to wouldn’t exist

As part of that world, I also want livable wages and work-life balance for developers, so they can work on their passion FOSS off-call. And for students and programming enthusiasts to be more passionate about FOSS. Like in the 90s before the corporates took over FOSS.

If some FOSS still wouldn't exist then, I'm fine with that.


That's works for small stuff like self hosted images, but will never work for anything actually reliable.


Doesn’t it work for the Linux kernel? And https? And lots of other stuff?


No. A lot of that work is sponsored.


The vast majority. Only 7.7% is unpaid: https://thenewstack.io/contributes-linux-kernel/


Which is not inherently surprising.

Developers need a salary to pay the bills. Let's say that covers the first 40 hours of the week.

Those who are searching for significance outside their day job offer free labor as their "hobby". Maybe 10 hours a week?

For projects that want to move forward with some velocity it makes sense to make some of that development into paid day-jobs.

As projects get very large, there's a fair amount of overhead in just "keeping up". That erodes the 10 hours quickly. Further reducing the time to contribute.

So where is all this cash to pay employees coming from? Certainly not end users (as anyone who's tried funding an OSS project from users knows.) No, it comes from commercial companies (MS, Amazon et al) or venture capital.

This is the cognitive dissonance that underpins OSS development. The very people OSS treat as the "enemy" are the people funding OSS in the first place. As much as say RMS rails against big tech, Linux and the rich Linux economy system only exist at the level they do -because- of big tech.

Of course, I painting with a broad brush, and there are exceptions, but the point remains. It's turtles all the way down, and those turtles are not funded by users.


Those turtles didn't need to use funding pre-doc-com-boom, they were passion projects and people with time devoted to the "cause" of FOSS.

>This is the cognitive dissonance that underpins OSS development. The very people OSS treat as the "enemy" are the people funding OSS in the first place. As much as say RMS rails against big tech, Linux and the rich Linux economy system only exist at the level they do -because- of big tech

Perhaps that's the problem: that they exist "at the level they do", meaning most of it is corporate focused, and not enthusiast and user focused.

Even ourselves, as devs, evaluate FOSS as to whether it's "useful" for our corporate/startup needs. This wasn't exactly the case, or at least not the main case for a FOSS project.

Gnome, for example, wasn't created to give RH and co a desktop shell for corporate installs...


The ‘cause’ of oss? I doubt many people ever were dedicated to a cause outside of GNU diehards. For most other people it was about curiosity or fun, a hobby etc.


Or, as is the point of this article, simply a job. (And likely -most- OSS developers are just paid employees. )


>> Those turtles didn't need to use funding pre-doc-com-boom, they were passion projects and people with time devoted to the "cause" of FOSS.

Except they kinda did. The foundations of FSF are born by academics working at institutions, getting paid salaries. The were devoting time certainly, and certainly in the case of RMS with passion and cause, but that work was definitely funded - usually by the university.

>> Perhaps that's the problem: that they exist "at the level they do", meaning most of it is corporate focused, and not enthusiast and user focused.

I think we can drop the term "enthusiast". It implies tiny niche group with little practical value. I'm thinking of classic car "enthusiasts" who spend all their time under the car, and precious little driving it.

So let's talk about users. Users want full-featured reliable software. I would suggest all software, if successful, is user focused. (To he honest, I'm not sure what you have in mind with "corporate focused".) Firefox, to pick one project at random will seemingly live or die based on the individual user experience.

Equally take databases - there are s plethora of options to suit every use case. Need big powerful fast enterprise scale - Postgres is for you. Need small footprint with easy install - try Firebird. And a gazillion others. Surely such quality is a good thing?

>> Gnome, for example, wasn't created to give RH and co a desktop shell for corporate installs...

Um. Sure it was. It was designed to offer a gui desktop on top of Linux. Who did they think would use it if not Linux distributions? Given that for decades "the year of Linux on the desktop" was a meme, I'm not sure it's fair to claim that distributions using Gnome to create desktops for business users was a surprise.


Universal basic income & bug/feature bounties, for example.


This is indeed interesting.

The historically 'good' open source companies like Sun got bought but the ones that weren't like Oracle. The selling support model alone does not seem evolutionarily fit for the market.

Now we have these VC-backed 'open source' companies that have a playbook wherein they appear open source at first. But when you dig deeper, you find that the heart of the thing is a closed binary.

The investors are going to want to be paid back somehow. And the business model of VC means that one of two things happens:

1. The company finds a way to 100x the return. Which, if you're a customer, might be a scary prospect.

2. The company makes an amount somewhat lower and, while it would be a good business for a non-VC company, they're considered a zombie by their investors. So, they are killed leaving you as a customer in a bad position.

I therefore trust non-VC backed companies substantially more to keep alignment with their customers long-term.

A workable model could be for instead companies that have legally-enforceable promise not to enshitify their closed sourced product. So that the product will always be aligned with the paying customer. The customer cannot be made the product at a future date.


Sun was mainly a hardware business; you bought their workstations and servers. And oh, they also had this unix-y thing that came with that. Later software did become a bit more important with Java and MySQL and all of that, but it was still primarily hardware company.

I think it's pointless to even compare it to the Redis company; just about everything is different.


For sure. It's the difference between commoditizing your complement[0] and trying to build a business on something anyone can run for free.

0: https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/


You go homeless so Bezos can make his yacht a foot longer.

I find it amazing how much money is being spent to ensure open source code doesn't end up in the hands of users and how many people are blaming the ones trying to increase user freedom.


Good to read that on HN. A fair share of HN Readers and supporters belong to that crowd ...


I think something like https://bigtimelicense.com/ is a good start.


Their definition of "fair, reasonable, and nondiscriminatory terms" seems... incredibly vague, and with a big chicken-and-egg problem for the first license.

> If the licensor advertises license terms and a pricing structure for generally available commercial licenses, the licensor proposes license terms and a price as advertised, and a customer not affiliated with the licensor has bought a commercial license for the software on substantially equivalent terms in the past year, the proposal is fair, reasonable, and nondiscriminatory.



Which says "While there are no legal precedents to spell out specifically what the actual terms mean..."


Why specifically venture funding?


Because of the expected revenue and growth that comes with it.


My thesis is that when you don't have the pressure of VC funding (gotta hit the revenue numbers you promise to investors sooner or later), alignment between the business and the OSS community isn't as tough to find.


I'd agree with that. Your message sounded to me like you thought VC funding was desirable for software projects. I wonder why we can't just fund software like a regular business- why look for venture returns?


That works great! I think the best money to get to run a business comes from customers. Bootstrapping is great.

However, just like fewer homes would be owned if you didn't have mortgages, less software companies would exist without VC. It's basically a subsidy from the rich, endowments and pensions, to the rest of us (consumers because we get stuff for free, developers because it increases the demand and thus salaries for us).

I think VC is a net benefit to the world in terms of software delivered and companies built. I think OSS is a net benefit to the world because of the explosion of possible ideas and the leverage it lets developers have as they build on it.

I would love to see these two huge innovations in building software work together well. Haven't seen it yet, hence my original comment.


Because this is HN, lots of VC fanboys here.


Just because people want to make money off something doesn't neccesarily mean they deserve to.


FLOSS-5: freedom to contribute 5% of profit if powering a cloud service.


This is very good use case of micro-transactions. If AWS makes $100 off Redis, they should be pay back X% to Redis project, from which the money is distributed to contributors based on how important their contributions were. Also Redis project is also supposed to pay back to the software components and 3rd party libraries it uses, so C project gets a fair share of the pie contributed back to them as well.


From HN a few days ago: https://github.com/microsoft/Garnet

A Microsoft Research, open source, performant, almost RESP compatible alternative (according to them)


There is also Valkey, a fork from just before the change backed by AWS, Google, Oracle who are paying a few former core devs

https://github.com/valkey-io/valkey

And not to forget Redict, also a fork, that is maintained by drew devault

https://codeberg.org/redict/redict


To me Redis has always seemed like a Trojan Horse for developers. The first impression is its this simple key-value database, so easy to use. Oh wait... it's also a cache, nice! Let's cache all the things too! And look... all the cool kids are are using it too, so it must be cool, meanwhile the old Unix mantra of make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features. ( http://www.catb.org/~esr/writings/taoup/html/ch01s06.html ). Fast forward 10 years and you need to download it's Enterprise Whitepaper ( https://redis.com/solutions/use-cases/caching/ ) to make the right caching decisions.

Where this is coming from is having worked on a project where Redis was being used as a database and a cache, on different ports. And of course most of the dev team hadn't read the the manual because Redis "is simple and just works". And of course someone forgot to actually configure the Redis instance that was supposed to be a cache to actually _be_ a cache. And someone else thought the instance that was supposed to be a cache but wasn't was actually a database. And yet another had used TTL caching to solve all their performance issues. And pretty soon mystery bugs start showing up but sadly no one can actually REASON about what the whole thing is doing any more, but there's no time to actually clean up the mess because it's a startup struggling to stay afloat.

And I remember asking "why didn't you memcached for caching?" and the response was "Dude! No one is using memcached any more". So the technical decision for Redis was based on "what's cool right now".

Anyway... I feel a bigger rant brewing so I'll stop here.


Redis is a very useful tool. You shouldn't blame the tool if people can't be bothered to use it properly!


I think it's rather features were added to Redis out of the experience and craft, not just to "lure future users into a pit", I doubt antirez would have that in mind.

But I think you described right the social behaviors of certain/common types of users.


Nothing wrong with Memcached but at high loads weird issues will crop up with it too and if you don't have an understanding of how slabs work in Memcached (I doubt your average dev does) you are going to have a hard time reasoning with it as well. Eventually someone will say "why didn't you just use redis for caching?".


hear hear.


Somehow no one has mentioned KeyDB so:

https://github.com/Snapchat/KeyDB

[EDIT] whoops, didn't read the article, went immediately to comments for recommendations since that's what HN is good at IMO.


Well, it's talked about lenghtly in the article.


It's mentioned in the first paragraph of the article, and "KeyDB" is featured 14 more times throughout the rest of it.


KeyDB is flaky garbage


Whoaaaa I’d love some details on this reaction, do you have any stories or anecdotes to share? I have to say I’ve never hit its limits so I’ve never lost trust in it



Please explain


We got hit by [0] and so had to pin to an older version (we didn't raise the issue).

Also, just look at the amount of open bugs and their age [1]

They also recommend using swap for some reason, however if your memory usage reaches the point where swap is being used the performance is so bad that the machine may as well be dead.

It's been nothing but trouble, which is a shame because the changes they've done to redis have crossed my mind too. We'll probably move to Scylla.

[0] https://github.com/Snapchat/KeyDB/issues/465

[1] https://github.com/Snapchat/KeyDB/issues


Whoa, very biased article (especially for LWN). Only cites media coverage; no links supporting that Amazon, MSFT, Google, etc. were in fact EEE’ing (or at best, behaving unethically) with each of these projects.

It even suggests cloud providers did contribute, and uses bad data (git commits “by employer” w/o dataset) that basically contradicts their argument.

I may be biased, as I saw Amazon doing exactly what this article claims “maybe they weren’t”. But statements like this seem intentionally misleading, and easily disproven:

“Distributing a source-available version of MongoDB could be seen as a loss-leader strategy to reach developers that the company wagered did not care about open-source.”

MongoDB is still “source-available”, and on the same GitHub repo I’ve used since 2010. The SSPL only impacts cloud-providers, and has exceptions for cloud providers who release their source code.

The OSI doesn’t get to define open-source. Neither do I, but at least I was part of the community for ~20 years…


Bah

  The OSI doesn’t get to define open-source.
By definition: yes, they do.

  The SSPL only impacts cloud-providers
It impacts all people who manages mongodb for somebody else, which is a lot of hosting providers (many of which probably do not care about the licence and are too small to get caught)


Redis, Redis, again more about Redis ....

From you people who know a lot about Redis, help me out here: For my Web site code (for my startup), I needed a key-value store. Soooo, it looks like I could use Redis for that.

But instead, wrote a little code using two instances of a Microsoft .NET collection class. Simple code. Plenty fast. Welcome programming exercise using .NET classes. Cheap -- no ongoing charges and no chance of charges in the future. And, no concerns about what might happen from politics, business, some remote service, etc.

Question: What am I missing by using my little DIY (do it yourself, roll your own) solution and avoiding Redis, work of other people, or a service from Amazon Web Services, etc.????


Actually you want a ConcurrentDictionary, but that still wouldn’t provide you with a cluster across instances.

https://learn.microsoft.com/en-us/dotnet/standard/collection...


Nice! Thanks! Looks like a nice .NET class!

It's thread safe so that if my startup is more successful than I'm assuming then I'll be free to do less on how to exploit parallelism from several servers. As it is, the code I wrote serialized access to the key-value store I wrote. Sooo, that could be a performance bottleneck.

I should review network address translation (NAT) and affinity of one user to some one server, instance of Microsoft's IIS (Internet information server), thread of execution, etc.


Please don't use IIS hosting. Use latest LTS version (.NET 8) and ASP.NET Core in Kestrel mode of hosting (which is default and cross-platform).

This will save you a lot of headache and get the best experience.


Thanks! LTS and Kestrel are new to me! Just did a first Google search on them. Thanks!

I'm the self-funded, sole/solo founder. So, I pay attention to the business, e.g., getting and pleasing the users, and also the computing. If successful, then getting paid for running ads, accounting, taxes, lawyers, floor space, employees, etc.

So, for now, concentrating on pleasing the users. Part of that is some original applied math. Users won't be aware of any math, but the math should be secret sauce and an unfair advantage. So, am also concentrating on applying the math.

For the software, trying to keep that simple.

Had a disaster, but before that had the Web site running: Mid tower case ($40 with a $20 rebate), $65 motherboard, 8 core AMD processor with a 4.0 GHz standard clock ($100 at Amazon), Windows 7 Professional, some 4.x version of .NET, IIS, ASP.NET, ADO.NET. As I understand it, .NET CORE came later and is more restrictive.

My project is only for a Web site; users will get to the site only via the Internet and a standard Web browser. E.g., I'm making no use of anything mobile. So, the project has no mobile app.

Am highly motivated (1) to stay with just Windows, soon Windows Server, and (2) to keep down, to zero, the investment of time to program on Linux, IoS, Android, etc. -- hope never to write any code for any of them. That is, I can get paid only from revenue from the business; while I have to write the code, and it's fun to do, that's all a business expense; I can't get paid for writing code. I'm assuming that Microsoft and Windows have a foundation plenty sufficient for my business objectives.

I have yet to move to a later version of .NET: Okay, I should, but, still, not looking forward to the effort. To me, the 4.x version of .NET I used looked fine. For another outrage, I wrote in the .NET version of VB (Visual Basic) and wrote no C, C++, or C#. I really like VB.NET, regard it as a nicely designed, implemented, documented language with plenty of features for what I need.

For what I wrote, the UI (user interface) is simple and traditional -- billions of people will understand it at zero effort, immediately. There is a huge range, world, universe of Web page design features I didn't use.

The timings I did show that the site is astoundingly fast, fast enough that if can keep the computing on average 50% busy 24/7, then standard ad rates will generate some gratifying revenue.

An 8 core processor with a 4.0 GHz clock is no toy, is a lot of computing.

Recently heard about Amazon and their AWS (Amazon Web Services) wanting the TLS (Transport Layer Security) version 1.2. Soooo, I checked, saw that I was using version 1.1, that 1.2 was available, so picked 1.2.

What I'm doing now is dirt simple: Have 1000+ Web pages of Windows and .NET documentation, so wrote just ~300 lines of Rexx code to extract the page titles from the HTML tags

<title> ... </title>

and make a TOC (table of contents) I can read into my favorite editor KEDIT and search -- then one keystroke to KEDIT will have Firefox display the Web page.

Want to do some more system management, get the site running again, do some revisions, do some marketing, and go live.

In short, my CEO-business hat has me think, for the foundation of .NET, it's good on features, is now old and likely quite reliable for the old features I will use, and seems plenty fast -- soooo, I know, I should be ashamed, that's good enough!


Almost everything you wrote is factually wrong, but I'm not prepared to write an A4 equivalent length rebuttal. It seems you have not been even tangentially keeping track of any developments after... 2015.


> Almost everything you wrote is factually wrong

I know of no such, and you gave no examples.

> It seems you have not been even tangentially keeping track of any developments after... 2015.

You are attacking me personally or the content of my writing?

For your date 2015: A key to my Web site is some math, and it is original with me, from my research, and, thus, fully up to date! Uh, I'm able to do such math partly because I hold a Ph.D. in applied math from a world famous university; for more, I've published peer-reviewed papers in applied math, saved FedEx with some applied math for the BoD, taught applied math in some famous universities, both graduate and undergraduate, and, oh yes, published peer reviewed original research in artificial intelligence. Also taught computer science at Georgetown University.

There was a LOT going on in the Internet and the Web, HTML, SQL, etc. long before your 2015: Gee, there was a nice introduction to developing Web sites in

Jim Buyens, 'Web Database Development, Step by Step: .NET Edition', ISBN 0-7356-1637-X, Microsoft Press, Redmond, Washington, 2002.

Yup, that's 2002, long before your 2015!

That book is an example of excellent technical writing. There are 15 chapters with nice introductions to each of VB.NET, ASP.NET, ADO.NET, database and SQL, one chapter for each, plus more -- all from 2002!

The book does not emphasize how to use JavaScript to make Web pages that jump around for no good reason, make users angry and leave, and hurt the ad revenue.

Net, in simple terms, what is new and important about my work is my original math; nearly all the rest of the tools used and features implemented goes back to the last century.

For some irony, and also a good lesson, consider Hacker News and its functionality and user interface, both that go back largely or entirely to the last century.

Uh, for "developments" since your 2015, for the back end, that has my original math which is fully up to date, and for the front end, i.e., the user interface, in general, in simple terms, for my Web pages, each new technique would be something more users don't understand and that, thus, might hurt the success of the site.

Let's see, since your 2015:

Pizza is really OLD, and Pizza Hut is worth $38 billion.

Hamburgers are really OLD, and McDonald's is worth $193 billion. Burger King, $34 billion.

My 1986 Chevy S-10 Blazer had good electronic fuel injection, no other digital electronics, and standard sealed beam headlights which for me made it as up to date as I want -- for anything since then, for me it's useless or annoying, more to buy, and more to maintain so I don't want it.


I think you need to talk to someone


You are presuming everyone has the same needs as you had when assessing Redis, which is a bit naive, if I may share my opinion.


> You are presuming ...

No, no, not at all: I admit, accept that no doubt Redis has a lot more functionality than the few pages of code I wrote.

My question was: My code looks like it will do what I need done, but maybe I'm missing something, i.e., maybe Redis has some features that very likely I should have?

If want to expand the question to other people, what is the chance that usually Redis is overkill, more functionality, code, complexity, considerations, ..., than needed? I don't know so am asking.

Or, I had a 2 wheel drive car, but did I miss a lot not having a 4 wheel drive car that I nearly always used in only two wheel drive?


If that is enough for you, then that is good

You may need data persistence (keep the data live while you restart your process), cross-instance coherencies could be nice too, automatic data expiration too.

But if you do not, then it is ok!


Thanks. My project had an interruption, and I'm getting back to the code.

My code that needs a key-value store is simple, short, just uses two instances of a .NET collection class.

I need NAT (network address translation) to keep affinity of each user with their one execution instance of my code, but I suspect that is automatic with Microsoft's IIS (Iinternet Information Server) that the code uses.

For persistence, the code needs that only long enough for each user connection. And for performance, I don't need sharding across several servers acting like a cluster -- maybe that is some of what Redis supports.

It appears that .NET has more functionality and performance potential (user connections per minute) than my project needs, so I'm trying not to try to master everything Google, Facebook, Amazon, a big bank, Walmart, etc. might need! So far, I'm pleased with .NET.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: