toc icon indicating copy to clipboard operation
toc copied to clipboard

[HEALTH]: NATS

Open caniszczyk opened this issue 8 months ago • 63 comments

Project name

nats

Concern

There are health concerns around the NATS project that require review and discussion:

  • Some NATS maintainers are interested in leaving CNCF which would mean archival of the project: https://github.com/cncf/foundation/blob/main/documents/nats/NATS.io%20Maintainer%20Minutes%20-%20March%202025.pdf
  • A single vendor unfortunately wants to re-license and take control of the project: https://github.com/cncf/foundation/blob/main/documents/nats/Proposal%20to%20exit%20NATS%20from%20CNCF.pdf https://github.com/cncf/foundation/blob/main/documents/nats/Cease%20and%20Demand%20Letter%20from%20Synadia%20Counsel.pdf

The project may need some deeper governance review/improvements, a call for broader maintainership and more. From my POV outside of the legal circumstances above that CNCF leadership is managing, this reminds me of the time Cortex was forked by a single vendor into a new project with a lot of maintainers moving to the new project under a new name, we had a call in CNCF for additional maintainers and it worked out in the end: https://grafana.com/blog/2022/03/30/qa-with-our-ceo-about-grafana-mimir/

Prior engagement

No response

Additional Information

https://github.com/cncf/foundation/tree/main/documents/nats

caniszczyk avatar Apr 24 '25 13:04 caniszczyk

Also relevant CNCF blog post: https://www.cncf.io/blog/2025/04/24/protecting-nats-and-the-integrity-of-open-source-cncfs-commitment-to-the-community/

caniszczyk avatar Apr 24 '25 14:04 caniszczyk

From the CNCF wasmCloud maintainers: https://wasmcloud.com/blog/2025-04-23-statement-on-nats/

We are committed to the open-source community, foundation membership, and participation in the CNCF.

LiamRandall avatar Apr 25 '25 14:04 LiamRandall

Words fail me as to how disappointed I am with Synadia.

When discussing NATS with others, I always described Synadia as a company that "got it".

NATS was made freely open to the community via CNCF, with a great community spirit in the associated YouTube posts, NBE (NATS By Example) and the Slack group.

It was always clear to me and others that there was always some "secret sauce" mostly relating to monitoring, management and support that you could only get if you went commercial with Synadia. And that was just fine for me and others. And the impression we got was that Synadia was happy with that monetization route.

But it was always clear that the underlying NATS was line-for-line the same and there was no two-tier open vs closed feature mentality that you see in other projects such as CockroachDB or others. I fear that is now going to change.

I was about to roll-out a NATS project but am now scrapping it and actively looking to strip NATS out of all existing deployments.

udf2457 avatar Apr 25 '25 14:04 udf2457

We are in the same situation. About to roll out NATS to production at scale in replacement to our existing queueing/streaming mechanisms but I'll hold up a bit to see the wind direction.

I've contributed to NATS myself and hear someone calling "a failure to achieve objectives" the CNCF and OSS efforts, is frustrating to say the least.

galvesribeiro avatar Apr 25 '25 19:04 galvesribeiro

Here is our formal response.

https://www.synadia.com/blog/synadia-response-to-cncf

derekcollison avatar Apr 25 '25 20:04 derekcollison

I appreciate all Synadia has done to grow the project. Thank you for creating a great project. It really is an impressive piece of software. However it is no longer Syndia's to relicense. I look forward to seeing the Synadia fork of the project.

stmcginnis avatar Apr 25 '25 20:04 stmcginnis

We had no intention of relicensing the NATS code base, and we explicitly said that during our conversations with the CNCF. Since the CNCF is apparently experiencing issues with other projects and re-licensing, Chris asked me. I was very clear that it would be server only and that their would always be an AP2 version of the server, and clients would continue to be AP2.

I do feel strongly that projects like NATS, that are funded and grown by a single company, do not fit well into the current CNCF's view of projects.

derekcollison avatar Apr 25 '25 21:04 derekcollison

However it is no longer Syndia's to relicense

trademark/logo != copyright

CNCF does not require that copyright be transferred when a project joins.

I'm sure that Synadia has kept track of who The NATS Authors are and will get permission from them to relicense.

lukebakken avatar Apr 25 '25 21:04 lukebakken

That is true, and to be crystal clear, we are only considering the server and that does not mean there would not be an AP2 version of the server.

derekcollison avatar Apr 25 '25 21:04 derekcollison

My understanding is that contributors are contributing their code to the nats project under the apache 2 license. Unless they are assigning copyright to the nats project (I dont see that requirement on the git repo), they retain their copyright, and nats itself is bound by the apache license. Unless the BSL and Apache 2 license are compatible, they can not be combined or relicensed unless all copyright owners agree, or the code that contributers contributed that don't agree is removed. So having a BSL licensed server doesn't seem legal unless you can do that. Can you? I am not a lawyer. I have read though many open source licenses over the years.

kfox1111 avatar Apr 25 '25 22:04 kfox1111

All CNCF projects need either CLA or signed commits / PRs that assign rights to the project.

derekcollison avatar Apr 25 '25 22:04 derekcollison

No, signed commits don't assign copyright, they license the code to the project under the agreed license. Its right here in the nats contributing documentation: https://github.com/nats-io/nats-server/blob/main/CONTRIBUTING.md#sign-off

In order to accept a contribution, you will first need to certify that the contribution is your original work and that you license the work to the project under the Apache-2.0 license.

Due to that, I believe the project must comply with the chosen license or you are in breach of the contributors copyright. Alternatively, you can get all those contributors to agree to a license change. But you can't just re-license it without that. The Apache 2 license doesn't grant the project that right.

kfox1111 avatar Apr 25 '25 23:04 kfox1111

@lukebakken I back the CNCF's position on this matter. However, as Apache is a permissive license, code licensed under it could be "relicensed", though not in a traditional sense, without permission from the respective copyright owners.

Synadia could just fork the code, and then the combination of Apache-licensed code and their own code would then be available under only the license of their choice.

mon-jai avatar Apr 26 '25 03:04 mon-jai

As an outsider with no affiliation or agenda, I've read through the legal filings, public statements, and related blog posts. After digesting everything, my view is simple: the CNCF should consider letting this go.

Nothing in the world is permanent—especially in open source. NATS is, in practice and momentum, a Synadia-led project. Rather than framing this in terms of legal ownership or control, CNCF could choose a more supportive posture, even when circumstances evolve.

The community, including CNCF, made contributions—financial and otherwise—freely and in good faith. That’s admirable. But Synadia has clearly been the primary driver behind NATS for years, and it’s equally clear the NATS trademark was never formally assigned. Based on first use and continuity of stewardship, Synadia has a strong legal standing.

So instead of creating friction, why not generate goodwill? Positive energy builds ecosystems. Letting go doesn’t mean giving up—it means accepting change and focusing on what really matters: growing the tech and the community in a spirit of collaboration, not conflict.

unixneo avatar Apr 26 '25 04:04 unixneo

@unixneo The community actually depends on CNCF to decide which technology to use. CNCF represents open governance, stable licensing, and continuous updates for its projects.

NATS, while being a good piece of technology, may not receive the adoption it has today without being under CNCF. If CNCF decided not to protect the NATS project today, it would damage the perception of CNCF as a sign for stable, reliable, and consistent open-source technologies. People may not trust the CNCF for other hosted projects to come.

mon-jai avatar Apr 26 '25 06:04 mon-jai

Single company governed oss projects are an oxymoron.

History tells they are bound to cause user pain and unneeded migrations in the long run. CNCF is an umbrella for users to protect themselves from these.

But these public forks have a good side. They make public that a single company is willing to risk a community storm to make a future profit.

I am not very familiar with nats, but now I am very interested. There is value in this project and in this community. It's not a dying project as some mantainers are trying to say for false community profit.

The challenge for all current and future nats users/mantainers now is to understand what has been happening with this project and what needs to be done next. It's time for new users to download the project and use it. It's time for users to file PRs and issues.

friedrichg avatar Apr 26 '25 06:04 friedrichg

It's time for users to file PRs

No, the time to file PRs was under CNCF and the associated OSS license.

Nobody other than people on the Synadia payroll should be wasiting time contributing to NATS under BUSL.

Why ?

Well, there are many reasons.

But one of the biggest is that BUSL gives Synadia the right to lock away your contribution for anywhere up to 4 years before it is released as open source.

Sure Synadia will tell you (https://github.com/nats-io/nats-server/issues/6832#issuecomment-2832005407) they won't lock it away for the full 4 years. But I fear the reality will be that there will be cherry-picking going on and the most interesting stuff will indeed be locked away for 3–4 years.

So if you like contributing code to a black-hole then be my guest. Frankly, I would go spend your time contributing elsewhere to a true OSS project instead. 😉

udf2457 avatar Apr 26 '25 13:04 udf2457

A clarification on trademark facts that were mis-stated by the CNCF.

https://github.com/nats-io/nats-server/issues/6832#issuecomment-2832452286

derekcollison avatar Apr 26 '25 18:04 derekcollison

Summary of the Synadia-NATS-CNCF Situation from an Independent Third Party

The current dispute between Synadia and CNCF over the NATS project is ultimately a minor event in the broader technology landscape.

  • NATS is a solid but niche messaging system. It is not critical infrastructure at global scale.

  • CNCF is a governance and marketing organization, not a technology driver itself.

If both NATS and CNCF disappeared tomorrow, the world would continue evolving with alternatives and forks without disruption.

  • This controversy is primarily about control, branding, and licensing — not technical innovation or ecosystem collapse.

  • Open-source ecosystems are resilient: developers will continue building and adapting regardless of foundation politics.

In short:

This is a small drama, driven more by organizational ego than any existential threat to open-source or messaging technologies.

The impact on real-world technology development will be negligible.

Independent Recommendation:

CNCF — simply let go of NATS. The sun will rise, the sun will set, and the world will keep turning.

Take the high road: be thankful for Synadia’s contributions, and wish them well as they move forward.

unixneo avatar Apr 27 '25 01:04 unixneo

That is true, and to be crystal clear, we are only considering the server and that does not mean there would not be an AP2 version of the server.

only the server? what else is there?

mfreeman451 avatar Apr 27 '25 05:04 mfreeman451

I found NATS from CNCF 3 years ago, and was impressed with the features, especially 100% free under the Apache license. Maybe if NATS isn't part of CNCF, I will not consider NATS or even don't know it, because projects from CNCF are always impressive for me, and instead I'll focus on other messaging like Kafka, RabbitMQ, etc.

I hope Syndia doesn't do a relicense, instead just fork for their commercial purpose

zulfikar4568 avatar Apr 27 '25 07:04 zulfikar4568

what else is there?

Well, there are the client libraries @mfreeman451 but clearly they are just a thin interface to the server.

So whoop-de-doo about any suggestions about the client libraries remaining OSS. 😆

udf2457 avatar Apr 27 '25 10:04 udf2457

it's daunting... when will we have clarity on the matter?

gsemyong avatar Apr 28 '25 09:04 gsemyong

Allegedly NATS will be holding an AMA and are writing an FAQ @gsemyong , but I'm not holding my breath about them bringing any further clarity, instead only likely to bring further questions and clouding of the waters.

I suspect the reality is we'll have to rely on the CNCF side to force some clarity into matters. Which could take some time I guess, especially if lawyers get involved.

The whole thing is just unbelievable. A sad end to a great project.

udf2457 avatar Apr 28 '25 10:04 udf2457

@gsemyong It's just FUD for now. The best part is this is starting to become business as usual. There is too many examples in the past of similar decisions in OSS projects. There is no community end here. Only the community is getting bigger and diverse if they actually do do it.

From a practical perspective: Watch out for this issue getting closed https://github.com/nats-io/nats-server/issues/6832 and https://github.com/nats-io/nats-server/blob/main/LICENSE actually changing to BUSL

When the license changes from Apache License to something non free (BUSL), the recommended step is not to look at any commit after that. As you can't contribute that back to the "opennats". At that point start looking for forks that continue the work from the good commit. I bet there will be a main fork to gather most contributors and users. That's if they actually decide to do it. They might reconsider too. I am hoping they do.

friedrichg avatar Apr 28 '25 10:04 friedrichg

... and https://github.com/nats-io/nats-server/blob/main/LICENSE actually changing to BUSL

Just for awareness, our (Synadia) intention is not to change the license of the current repo (never was). We'd have our own fork, and that would be under the BUSL license. That's also what other projects, like Cortex to Mimir, have already done in the past. The difference being, we don't intend to stop maintaining the current version and move to the BUSL licensed version. To the contrary, we're committed to supporting both versions, just like we've supported and maintained the Apache 2.0 server version over the years.

MauriceVanVeen avatar Apr 28 '25 10:04 MauriceVanVeen

@friedrichg either they reconsider or linux foundation forks (fingers crossed 🤞)

gsemyong avatar Apr 28 '25 10:04 gsemyong

@gsemyong, see also above comment. The current repo remains Apache 2.0 licensed.

MauriceVanVeen avatar Apr 28 '25 10:04 MauriceVanVeen

@MauriceVanVeen ok, it wasn't clear from previous communications that none of the parts of the current repo will be relicensed under busl. do i understand correctly that none of the stuff from the current repo will be moved to busl?

gsemyong avatar Apr 28 '25 11:04 gsemyong

do i understand correctly that none of the stuff from the current repo will be moved to busl?

@gsemyong Correct.

I'm assuming you mean things like features would be "moved to BUSL" in a way that you'd lose access to features because it's removed from one repo and (re)added to the other repo? That's definitely a hard no, indeed. All of the features available today will remain. New features, developed by Synadia, would start under the BUSL licensed repo and after some time become available/added in the Apache 2.0 repo.

People can still contribute to the open Apache 2.0 licensed version of course, if they want. (And I understand some people wouldn't want to anymore. It still is an option though)

MauriceVanVeen avatar Apr 28 '25 11:04 MauriceVanVeen