Yeah, I like that with NATS a lot. As a person that was operating on these clusters, having the uptime, having everything available was critical. I like that confidence that it was going to be basically around and available for the components to be able to communicate. I guess it is because of the simplicity of how it does much less – I think that plays a big part here. Also because it tries to protect itself from bad actors within the system.
If you have a client that is trying to do some harm, the server will basically take out the connection, and other clients would still be allowed to communicate and basically not be impacted by these other parts of the system. So yeah, it is true…
At the beginning – with the original Ruby implementation – they didn’t have clustering from day one, but it was still possible, for example, to do basic failover scenarios with NATS, and the recovery was pretty fast still. So yeah, I guess it’s well suited for that kind of a use case. It really does stay up for long periods of time.
It’s very difficult to crash it. I’ve managed to crash it a number of times, but it was by making these weird clients trying to attack it, basically. Those are all fixed now, but I like finding these weird corner cases with the buffers from a NATS server where you could make it crash… But they have all been fixed in master, so yeah, if someone manages to make it crash somehow [unintelligible 00:06:47.15]