I'm trying to understand the interaction between the "backlog" flag, and the "limit-concurrency" flag of uvicorn. From the documentation(https://www.uvicorn.org/settings/)
Backlog: Maximum number of connections to hold in backlog. Relevant for heavy incoming traffic. Default: 2048
limit-concurrency: Maximum number of concurrent connections or tasks to allow, before issuing HTTP 503 responses. Useful for ensuring known memory usage patterns even under over-resourced loads.
Both of these descriptions seem to make sense independently, depending how you interpret the word "backlog". But I'm confused at how they interact with eachother.
Limit-concurrency explicitly says that if you exceed that number of open connections then it will throw a 503 error, but the backlog defaulting to 2048 seems to imply to me that uvicorn will hold 2048 requests waiting for other requests to complete, which means that it wouldn't be 503ing.
Can anyone shed light on these settings?