Skip to content

Commit e203890

Browse files
committed
add some notes from the sync with Mark
1 parent 8e4dc44 commit e203890

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

A77-xds-rate-limiting-rlqs.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,13 @@ will cover four major parts needed for language-specific gRPC implementations:
5252
2. Implement the client side of RLQS protocol (RLQS
5353
Client): `StreamRateLimitQuotas.StreamRateLimitQuotas`. It will establish
5454
bidirectional gRPC stream to the remote [Rate Limit Quota Service][rlqs].
55-
3. Implement a Server Interceptor (filter in C-core, later called
55+
4. Send and receive updates.
56+
3. Implement a HTTP filter (filter in C-core, later called
5657
"the Interceptor" for simplicity) that requests.
57-
4. Send and receive updates.
58+
5. Fault modes
59+
60+
61+
/// per-host and per-route overrides
5862

5963
### Related Proposals:
6064

@@ -69,7 +73,13 @@ will cover four major parts needed for language-specific gRPC implementations:
6973

7074
### xDS types support
7175
#### Unified Matchers
76+
add a note that we'll be using this in the future
77+
list specific matcher
78+
start from the assumption we implement both
79+
7280
#### io.envoyproxy.envoy.config.core.v3.GrpcService.GoogleGrpc
81+
consider credential could be a security/ 3p trust issue.
82+
TODO(sergiitk): meeting with leads about this
7383
#### Canonical CEL
7484

7585
TODO(sergiitk): A precise statement of the proposed change.
@@ -86,7 +96,7 @@ TODO(sergiitk): A precise statement of the proposed change.
8696
3. gRPC Server parses [RateLimitQuotaFilterConfig.bucket_matchers] tree and
8797
caches it in the filter state.
8898
4. gRPC Server installs a Server Interceptor (filter in C-core, later called
89-
"the Interceptor" for simplicity)
99+
"the Interceptor" for simplicity) // TODO(sergiitk): HTTP filter
90100
5. Once a request is intercepted by the Interceptor:
91101
- The request is matched into a Bucket by evaluating the `bucket_matchers`
92102
tree against the request attributes.
@@ -95,7 +105,7 @@ TODO(sergiitk): A precise statement of the proposed change.
95105
throttled according
96106
to [RateLimitQuotaBucketSettings.no_assignment_behavior].
97107
- If the Bucket exists, the request is throttled according to Bucket's quota
98-
assignment. Bucket's `num_requests_allowed`
108+
assignment. Bucket's `num_requests_allowed` // TODO(sergiitk): explain what's throttle
99109
or `num_requests_denied` request counter is increased by one.
100110
6. For all existing buckets, a `BucketQuotaUsage` report is sent
101111
every [RateLimitQuotaBucketSettings.reporting_interval]
@@ -104,6 +114,12 @@ TODO(sergiitk): A precise statement of the proposed change.
104114
time. Once received, it must the quota must be applied to a Bucket with
105115
matching [bucket_id].
106116

117+
118+
// TODO(sergiitk): think about it from the perspective what events needs to be handled:
119+
1. parsing config
120+
2. getting an update
121+
can be described with pseudo-code
122+
107123
### Temporary environment variable protection
108124

109125
During initial development, this feature will be enabled via the

0 commit comments

Comments
 (0)