I think there would be value in a "simple Redis": a well-maintained tool for a certain class of problems which do not require a distributed database.
I think there would be value in a "simple Redis": a well-maintained tool for a certain class of problems which do not require a distributed database.
EDIT: I also want to stress on a fact, that at the same time in the newer releases there was a simplification attempt. For instance the Lua scripting side effects problem are going to be removed completely by simplifying how the replication of Lua scripts is performed. Redis 5 is already like that, but the dead code was not yet removed for safety. Redis 6 will completely remove many parts of code. So there is not just the stress on adding, but also on refactoring. ACLs themselves allowed to refactor authentication in separated functions inside acl.c to lower the overall complexity.
Redis is the most simple, rock-solid piece of software I have ever had the pleasure of using. I find the comparison with FoundationDB jarring.
Don't let the negative comments like that sway your mindset; I think your choices are spot on and the proof is in the pudding.
A quick glance suggests that this would still be similarly possible today. Redis is by no means perfect, but it deserves it's reputation for being accessible!
PS: Thanks for the mention of the Lua side effects changes. I'll be curious to read up about your solutions to those puzzles.
I would say that's mostly due to that when it gets down to brass tacks, Redis (ignoring the orchestration in Cluster) really is a fairly simple interpreter with simple memory management (largely delegated to the malloc implementation) that glues together a fair number of nice data structure/algorithm implementations that have little codependence. That last point is really, really important in it's developer accessibility. (antirez called this modularity elsewhere I think.) It also helps keep code size down.
a) can be used, optionally
b) can be composed with each other into new data processing (eg filtering/aggregation) models
c) did not reduce, significantly complicate, or create many 'exception rules', to otherwise a coherent model
Then those are good additions, in my view.
Also, I personally found, useful about Redis is its protocol. It is a very useful and poweful paradigm when different systems by different authors/companies implement same protocol. It reduces cognitive overload on users (programmers) and helps to continue building their domain expertise, rather than constantly re-learing APIs of tools or libraries.
So work on RESP3, in my view, is very welcomed.
Think about it: if you downvote anything you disagree with, eventually all you will see is opinions that you agree with. I don't know about you, but that is not what I expect from HN.