NATS and the CNCF kerfuffle
Derek Collison â creator of NATS and Co-founder & CEO of Synadia â joins the show to dive into the origins, design, and evolution of NATS, a high-performance, open-source messaging system built for modern cloud-native systems and part of the CNCF. Derek shares the story behind NATS, what makes it unique, and unpacks the recent tensions between Synadia and the CNCF over the future of the project.
Matched from the episode's transcript đ
Derek Collison: Yeah. And I think thatâs great. I really do. And like I said, my hope for all of this is that we can have an open dialogue about âAre there things that we can prove upon?â Outside of Synadia, outside of the CNCF, but just as a broader spectrum. And I think thereâs some interesting questions that should be discussed on âHow we we want to go about that?â and what role the CNCF and the Linux Foundation plays, what role maintainers play⌠Because one of the other things that we got a lot of pushback from is I feel deeply that the lifeblood of a project is in the maintainers. Itâs - yes, people want to concentrate on license, what foundation are you part of, all of that other stuff. And I think they do play a role. But at the end of the day, itâs the maintainers. And if all of a sudden the maintainers withdraw their support from a project, I think a lot of projects that have a tremendous amount of investment and are not just a simple weekend toy, if that makes sense⌠You know, saying âOh, weâll just get some maintainers and theyâll spend a weekend and then theyâll know how to program, letâs say, a NATS server.â Right? I think thatâs maybe a little short-sighted.
We have someone whoâs awesome internally that just got promoted, and is now running the server team⌠They graciously took that from me so that I can do other things. That person came in and was under our tutelage, and specifically under my tutelage, and it still took them about eight months or so. So we were paying them, and we were tutoring them⌠And most of the serverâs infrastructure was built by myself and someone named Ivan, and we were tutoring this person. And it still took them about eight months, almost a year to become like âOh, I can go anywhere in the server code and be effective, be productive.â
And so when you get statements that âOh, fork it. You guys go do your own thing and then weâll archive it, or try to find new maintainersâ - again, I want folks to kind of really think through that and say âIs that the best outcome for the ecosystem?â I donât think it necessarily is, but someone from the CNCF might say âYes, thatâs absolutely the way itâs supposed to work.â But what people are looking at to the CNCF around stability for projects, and longevity⌠You know, if the maintainers leave, thereâs going to be some level of disruption, for sure. It depends on the project, but itâs not going to be zero. And in some cases, in our point of view - which people might disagree - NATS thrives when Synadia thrives. Because weâre driving all of that stuff. At least thatâs my opinion. And again, not all projects look like that, and thatâs totally fine as well. But thatâs another one where I was like âThat doesnât feel like it should be the only answer.â That there could be a dialogue of âHow do we better support these types of projects? What if theyâre not necessarily a good fit as a foundation evolves? What options are there for doing that?â
And again, I think prior to the dust-up, but also going forward - and again, weâll release a statement next week, probably about whenever the podcast goes out, around our commitment⌠You know, most people might not understand, of our total R&D budget, 70% is going into open source. And itâs funded by the VCs who fund Synadia, and itâs funded by our customers. And the ones that can pay, that arenât paying, that are like âGive me, give me, give me. Iâm entitled to this. Hey, get off your ass and change this thing for meâ, which we see every once in a while in GitHub issues⌠Thatâs kind of when Iâm like âMaybe we need to figure out a way to have them change their perspectives a little bit.â Iâm not saying I donât want hobbyists to be able to use our stuff for free, or embed it all over the place. My original tagline for NATS was âConnect everythingâ, meaning it had to run everywhere, and was openly accessible. But again, itâs that production problem, which is non-zero. Itâs like âHow do we solve that problem for different levels of projects and open source?â