Skip to content

Commit d29be3a

Browse files
committed
clarified that errors must be returned using immediate reponse
1 parent 8ef8d87 commit d29be3a

File tree

1 file changed

+3
-3
lines changed
  • docs/proposals/004-endpoint-picker-protocol

1 file changed

+3
-3
lines changed

Diff for: docs/proposals/004-endpoint-picker-protocol/README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ filterMetadata: {
2020
}
2121
```
2222

23-
If the key `x-gateway-destination-endpoint-subset` is set, the EPP MUST only select endpoints from the specified list. If none of the endpoints in the list is eligible or the list is empty, then the EPP MUST return a 429 status code. If the EPP does not select from the list, then this leads to unpredictable behavior.
23+
If the key `x-gateway-destination-endpoint-subset` is set, the EPP MUST only select endpoints from the specified list. If none of the endpoints in the list is eligible or the list is empty, then the EPP MUST return a [ImmediateResponse](https://github.com/envoyproxy/envoy/blob/f2023ef77bdb4abaf9feef963c9a0c291f55568f/api/envoy/service/ext_proc/v3/external_processor.proto#L195) with 429 (Too Many Requests) HTTP status code. If the EPP does not select from the list, then this leads to unpredictable behavior.
2424

2525
If the key `x-gateway-destination-endpoint-subset` is not set, then the EPP MUST select from the set defined by the `InferencePool` selector.
2626

@@ -42,8 +42,8 @@ dynamicMetadata: {
4242

4343
Constraints:
4444
- If the EPP did not communicate the server endpoint via these two methods, it MUST return an error as follows:
45-
- 503 (Serivce Unavailable) if there are no ready endpoints.
46-
- 429 (Too Many Requests) if the request should be dropped (e.g., a Sheddable request, and the servers under heavy load).
45+
- [ImmediateResponse](https://github.com/envoyproxy/envoy/blob/f2023ef77bdb4abaf9feef963c9a0c291f55568f/api/envoy/service/ext_proc/v3/external_processor.proto#L195) with 503 (Serivce Unavailable) HTTP status code if there are no ready endpoints.
46+
- [ImmediateResponse](https://github.com/envoyproxy/envoy/blob/f2023ef77bdb4abaf9feef963c9a0c291f55568f/api/envoy/service/ext_proc/v3/external_processor.proto#L195) with 429 (Too Many Requests) HTTP status code if the request should be dropped (e.g., a Sheddable request, and the servers under heavy load).
4747
- The EPP MUST not set two different values in the header and the inner response metadata value.
4848
- Setting different value leads to unpredictable behavior because proxies aren't guaranteed to support both paths, and so this protocol does not define what takes precedence.
4949

0 commit comments

Comments
 (0)