Skip to content

Commit

Permalink
GEP-3388 HTTP Retry Budget API Design
Browse files Browse the repository at this point in the history
  • Loading branch information
ericdbishop committed Jan 29, 2025
1 parent e8ccbe1 commit 78667d6
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion geps/gep-3388/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ By default, Envoy uses a static threshold for retries. But when configured, Envo

The Linkerd implementation of retry budgets is configured alongside service route configuration, within the [ServiceProfile CRD](https://linkerd.io/2.12/reference/service-profiles/), limiting the number of total retries for a service as a percentage of the number of recent requests. In practice, this functions similarly to Envoy's retry budget implementation, as it is configured in a single location and measures the ratio of retry requests to original requests across all traffic destined for the service.

Linkerd uses [budgeted retries](https://linkerd.io/2.15/features/retries-and-timeouts/) as the default configuration to specify retries to a service, but - as of [edge-24.7.5](https://github.com/linkerd/linkerd2/releases/tag/edge-24.7.5) - supports counted retries. In all cases, retries are implemented by the `linkerd2-proxy` making the request on behalf on an application workload.
Usage of the ServiceProfile CRD is significantly rarer today, given Linkerd's support for per-route configuration through Gateway API Route resources. Though historically, [retry budgets](https://linkerd.io/2.15/features/retries-and-timeouts/) were the default configuration to specify retries to a service, with support for counted retries later being add in [edge-24.7.5](https://github.com/linkerd/linkerd2/releases/tag/edge-24.7.5). In all cases, retries are implemented by the `linkerd2-proxy` making the request on behalf on an application workload.

Linkerd's budgeted retries allow retrying an indefinite number of times, as long as the fraction of retries remains within the budget. Budgeted retries are supported only using Linkerd's native ServiceProfile CRD, which allows enabling retries, setting the retry budget (by default, 20% plus 10 "extra" retries per second), and configuring the window over which the fraction of retries to non-retries is calculated. The `retryBudget` field of the ServiceProfile spec can be configured with the following optional parameters:

Expand Down

0 comments on commit 78667d6

Please sign in to comment.