This kind of thing tends to happen a lot with open source projects or programs that are maintained long term. As the codebase grows, it inevitably starts supporting things that weren't part of the original plan.

More features mean more users. Some stick to the old stuff, some embrace the new, and eventually certain values become the de facto default, not really optional anymore.

Take Redis. Turn off AOF and it works as a volatile in memory cache. But most of us don't even think about it that way. So there is this argument that fewer features and simpler is better.(Memcached is such an example in this context) The so called 'straitjacket' approach. That makes total sense for big teams. But on the other hand, open source projects need regular updates to keep getting funding or contributions, so there is a built in tension.

And sometimes that leads to specialized forks or spin offs that excel in one niche area. My personal take? There is no right answer. It all depends on the context. Communication itself isn't free, after all

"Communication itself isn't free, after all"

Off topic, but that's my problem with microservices, devs seem to be totally unaware of this.

That's a decade old take. I don't think people are doing microservices and more.

oh yeah definitely glad we have no more microservices in prod anywhere, that would be a mess

More than two decades, folks were grumbling about this in the SOA days.

I think the clearest example of that is that people think Redis can only function as a cache that loses data on crash or shutdown.

I think that’s because people replaced Memcached with Redis, and expect the same from it.

AOF at scale causes failures, so you turn it off. Still makes a great cache though.