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?”