valkey-io / valkey

A flexible distributed key-value datastore that supports both caching and beyond caching workloads.
https://valkey.io
Other
16.43k stars 611 forks source link

Long term Valkey compat strategy #105

Open PingXie opened 6 months ago

PingXie commented 6 months ago

Per discussion in https://github.com/valkey-io/valkey/issues/43, we should consider tackling (more) compat issues holistically in RC2.

IMO, I think we should break as much as we like in RC2 the first major release and only, which includes changing the server ident from "redis" to "valkey", replacing "master/slave" with "primary/replica", etc in all user facing areas. All these changes should be gated upon a compat knob, which could be binary (on vs off) or a bit more granular (strict/loose/none) but shouldn't be more granular than that. After achieving this in RC2 the first major release, I think we should agree on a timeline to completely remove this compat layer (in 1-2 years or major releases, ideally).

I don't have the details yet, such as whether this compat knob is compile time, build time or packaging time, and what does "loose" mean, etc. I am curious to hear the community's thoughts on the high level direction.

@valkey-io/core-team

madolson commented 6 months ago

I don't think this should be the release candidate 2 of 7.2, which is what I said about rc2. I feel like this should the first major release of valkey, which includes clear deprecation plan for all the features. The release candidates for 7.2 should only be redis 7.2 compatible. It seems like trying to push a lot of compatibility stuff into 7.2 doesn't make sense that much sense to me.

PingXie commented 6 months ago

Agreed. I am aligned with dealing with compat in a major release.

Let me retitle this thread and update my first comment next and we continue the 7.2 discussion in https://github.com/valkey-io/valkey/issues/43.

bugwz commented 5 months ago

Regarding the compatibility aspects of Valkey with Redis, I would like to inquire about the community's thoughts:

zuiderkwast commented 5 months ago

@bugwz We will remain compatible with redis 7.2, but we don't know what redis will add in the future. It's impossible to promise to be compatible with future redis versions.