etcd-io / etcd-io/etcd

Explicit client versioning

Open
#10,246 28 comments 6 reactions 0 assignees View on GitHub
area/clientv3 help wanted stage/tracked
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.