envoyproxy / envoyproxy/ratelimit

Switch default protocol to v3

Open
#152 15 comments 1 reaction 0 assignees View on GitHub
no stalebot
Dominant language
Go
Stars
2.7k
Forks
535
PR merge metrics
No merged PRs in 30d

Description

**Rational**
In order to support newer features of the ratelimit protocol (like [rate limit overrides]( https://github.com/envoyproxy/envoy/issues/11595)), we’d need the service to use v3 protocol instead of v2 protocol. Thus, we propose to upgrade the ratelimiter core to v3 protocol. Since there doesn’t seem to be any real changes between v2 and v3, this seems to be as easy as replacing the imports and referencing newer versions in the data plane.

However, to support complete compatibility with v2, we’d need to have a legacy layer, just like it’s done for v1 now. Supporting 3 versions of the protocol with 2 legacies seems like an overkill, so we propose to simultaneously drop support for v1 ratelimit.proto. Seems like it should be ok given that the release schedule proposed doing so in [Q32018](https://github.com/envoyproxy/ratelimit#deprecation-schedule) [2]

**Proposal**
Thus, the concrete proposal:
Protocol v1 support is dropped
Protocol v2 becomes legacy and converted to v3. Given that the protocols are only different in message names, this should have almost no performance penalty
The service core is updated to use protocol v3

We intend to contribute all the code. We are also planning to use v3 protocol in production in our own fork in the beginning, thus we can provide some battle testing. What do you think?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.