feat(outbound): Add per-route stream timeout policies #3088
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change adds a new timeout configuration to the outbound HTTP and gRPC policies that sets request extensions to configure timeout behavior in the endpoint stack. This ensures that timeouts manifest as endpoint-level errors (i.e. visible to endpoint-level circuit breakers) instead of as a route-level cancellation.
Several timeouts are implemented:
NOTE: As this timeout is enforced in the endpoint stack, it is currently possible for requests to remain in the balancer queue until a failfast timeout is tripped. The configured timeouts only apply to requests that have been dequeued and dispatched to an endpoint.
NOTE: A followup API change is required to support configuring all timeouts via the API.