dotnet / dotnet/yarp

Slow Start Mode

Open
#2,430 1 comment 3 reactions 1 assignee Claimed by @benjaminpetit View on GitHub
Type: Idea
Dominant language
C#
Stars
9.6k
Forks
933
Avg merge
12d 18h
Merged PRs (30d)
2

Description

### What should we add or change to make your life better?

Slow start mode is a way to give newly started applications an ability to warm up before taking their full share of traffic.

On startup, web applications may need to fill caches, establish connections to upstream services, and create threads in their thread pool. This warmup period can sometimes be simulated before reporting as ready, but the best way to guarantee that the applications are ready to take the full traffic load is to give them a small portion of the traffic and ramp it up over a few seconds or minutes.

This has been implemented in [Envoy](https://www.envoyproxy.io/docs/envoy/v1.20.0/intro/arch_overview/upstream/load_balancing/slow_start#arch-overview-load-balancing-slow-start) as well as some of the K8s ingress providers based on Envoy like [Istio warmupDurationSecs](https://istio.io/latest/docs/reference/config/networking/destination-rule/) and [Contour Slow Start Mode](https://projectcontour.io/docs/1.27/config/slow-start/)

### Why is this important to you?

Without this feature, applications see latency spikes and availability drops any time they need to scale up. In a cloud environment with autoscale enabled, there may be dozens of scale up operations per day negatively impacting end users.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.