You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+18-18
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
**Table of Contents***generated with [DocToc](https://github.com/thlorenz/doctoc)*
4
4
5
5
-[Overview](#overview)
6
-
-[Deprecation of Legacy Ratelimit Proto](#deprecation-of-legacy-ratelimit-proto)
6
+
-[Deprecation of Legacy Ratelimit Proto and v2 Ratelimit proto](#deprecation-of-legacy-ratelimit-proto-and-v2-ratelimit-proto)
7
7
-[Deprecation Schedule](#deprecation-schedule)
8
8
-[Building and Testing](#building-and-testing)
9
9
-[Docker-compose setup](#docker-compose-setup)
@@ -38,27 +38,27 @@ applications. Applications request a rate limit decision based on a domain and a
38
38
reads the configuration from disk via [runtime](https://github.com/lyft/goruntime), composes a cache key, and talks to the Redis cache. A
39
39
decision is then returned to the caller.
40
40
41
-
# Deprecation of Legacy Ratelimit Proto
42
-
43
-
Envoy's data-plane-api defines a ratelimit service proto [rls.proto](https://github.com/envoyproxy/data-plane-api/blob/master/envoy/service/ratelimit/v2/rls.proto).
44
-
Logically the data-plane-api [rls](https://github.com/envoyproxy/data-plane-api/blob/master/envoy/service/ratelimit/v2/rls.proto)
45
-
is equivalent to the [ratelimit.proto](https://github.com/envoyproxy/ratelimit/blob/0ded92a2af8261d43096eba4132e45b99a3b8b14/proto/ratelimit/ratelimit.proto)
46
-
defined in this repo. However, due
47
-
to the namespace differences and how gRPC routing works it is not possible to transparently route the
48
-
legacy ratelimit (ones based in the [ratelimit.proto](https://github.com/envoyproxy/ratelimit/blob/0ded92a2af8261d43096eba4132e45b99a3b8b14/proto/ratelimit/ratelimit.proto)
49
-
defined in this repo) requests to the data-plane-api
50
-
definitions. Therefore, the ratelimit service will upgrade the requests, process them internally as it would
51
-
process a data-plane-api ratelimit request, and then downgrade the response to send back to the client. This means that,
41
+
# Deprecation of Legacy Ratelimit Proto and v2 Ratelimit proto
42
+
43
+
Envoy's data-plane-api defines a ratelimit service proto v3 [rls.proto](https://github.com/envoyproxy/data-plane-api/blob/master/envoy/service/ratelimit/v3/rls.proto).
44
+
Logically the data-plane-api rls [v3](https://github.com/envoyproxy/data-plane-api/blob/master/envoy/service/ratelimit/v3/rls.proto)
45
+
is equivalent to the rls [v2](https://github.com/envoyproxy/data-plane-api/blob/master/envoy/service/ratelimit/v3/rls.proto)
46
+
However, due to the namespace differences and how gRPC routing works it is not possible to transparently route the
47
+
legacy v2 ratelimit requests to the v3 definitions. Therefore, the ratelimit service will upgrade the requests, process them internally as it would
48
+
process a v3 ratelimit request, and then downgrade the response to send back to the client. This means that,
52
49
for a slight performance hit for clients using the legacy proto, ratelimit is backwards compatible with the legacy proto.
50
+
Prior to version 2.0.0 ratelimit service contained a protocol definition that used to be supported in a legacy mode,
51
+
but support for it and was removed in 2.0.0.
53
52
54
53
## Deprecation Schedule
55
54
56
-
1.`v1.0.0` tagged on commit `0ded92a2af8261d43096eba4132e45b99a3b8b14`. Ratelimit has been in production
57
-
use at Lyft for over 2 years.
55
+
1.`v1.0.0` tagged on commit `0ded92a2af8261d43096eba4132e45b99a3b8b14`. Ratelimit has been in production use at Lyft for over 2 years.
58
56
2.`v1.1.0` introduces the data-plane-api proto and initiates the deprecation of the legacy [ratelimit.proto](https://github.com/lyft/ratelimit/blob/0ded92a2af8261d43096eba4132e45b99a3b8b14/proto/ratelimit/ratelimit.proto).
59
-
3.`v2.0.0` deletes support for the legacy [ratelimit.proto](https://github.com/envoyproxy/ratelimit/blob/0ded92a2af8261d43096eba4132e45b99a3b8b14/proto/ratelimit/ratelimit.proto). This version will be tagged by the end of 2018Q3 (~September 2018)
60
-
to give time to community members running ratelimit off of `master`.
61
-
57
+
3.`v2.0.0` deleted support for the legacy [ratelimit.proto](https://github.com/envoyproxy/ratelimit/blob/0ded92a2af8261d43096eba4132e45b99a3b8b14/proto/ratelimit/ratelimit.proto).
58
+
The current version of ratelimit protocol is changed to [v3 rls.proto](https://github.com/envoyproxy/data-plane-api/blob/master/envoy/service/ratelimit/v3/rls.proto)
59
+
while [v2 rls.proto](https://github.com/envoyproxy/data-plane-api/blob/master/envoy/service/ratelimit/v3/rls.proto) is still supported
60
+
as a legacy protocol.
61
+
4.`v3.0.0` deletes support for legacy [v2 rls.proto](https://github.com/envoyproxy/data-plane-api/blob/master/envoy/service/ratelimit/v3/rls.proto)
62
62
63
63
# Building and Testing
64
64
@@ -331,7 +331,7 @@ For more information on how runtime works you can read its [README](https://gith
331
331
# Request Fields
332
332
333
333
For information on the fields of a Ratelimit gRPC request please read the information
334
-
on the RateLimitRequest message type in the Ratelimit [proto file.](https://github.com/envoyproxy/ratelimit/blob/master/proto/ratelimit/ratelimit.proto)
334
+
on the RateLimitRequest message type in the Ratelimit [proto file.](https://github.com/envoyproxy/envoy/blob/master/api/envoy/service/ratelimit/v3/rls.proto)
0 commit comments