Explicit client versioning
- Dominant language
- Go
- Stars
- 52.3k
- Forks
- 10.5k
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 43
Description
Hi all,
I can't find any precise documentation around compatibility of v3 clients with given versions and v3 servers with given versions.
While it may be possible to take entire Etcd clusters down and replace them at once, doing that with a larger set of clients is somewhat unrealistic.
Are there any backwards or forwards compatibility guarantees across the client API? For example:
* *Backwards compatibility*: Will any new version of a v3 client work with any older v3 version of Etcd? For instance, will existing grpc/protobuf messages only add optional fields, such that old messages are still understood, and those fields can be ignored? Will responses change across minor versions? In essence what guarantees can be provided if any? This allows upgrading clients first and then Etcd.
* *Forwards compatibility*: Will any old version of a v3 client work with any new v3 version of Etcd? For instance, will new versions of Etcd be able to interpret old protobuf client messages with missing optional fields correctly? This allows Etcd to be updated first and then clients to be updated individually over time.
It would be great if you could provide some information about how the Etcd team plans for such scenarios and how you attempt to maintain compatibility, if at all. If not, that should be documented as well.
Thanks!
Contributor guide
Research direction
Start with the v3 client API and v3 server compatibility questions in the issue, including grpc/protobuf message behavior across versions. Review the compatibility guarantees needed for client-first and server-first upgrades; done means the supported backward and forward compatibility is documented clearly, including any limitations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc
- Domain
- api, distributed-systems, documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100