# Functions

NewConcurrencyHandler initializes a new ConcurrencyHandler with the given concurrency limit, logger, and concurrency metrics.

# Constants

TODO this comment.
10% error rate.
20% error rate.
EvaluationInterval specifies the frequency at which the system evaluates its performance metrics to make decisions about scaling concurrency up or down.
MaxAcceptableResponseTimeVariability is the threshold for the maximum allowed variability or fluctuations in response times.
5 MBps.
MaxAcceptableTTFB (Time to First Byte) is the threshold for the longest acceptable delay between making a request and receiving the first byte of data in the response.
MaxConcurrency represents the maximum number of concurrent requests the system is designed to handle safely.
MinConcurrency is the minimum number of concurrent requests that the system will maintain, even under low traffic conditions or when scaling down due to low resource utilization.
RateLimitCriticalThreshold defines the number of available rate limit slots considered critical.
ResponseTimeCriticalThreshold is the duration beyond which the response time is considered critically high.

# Structs

ConcurrencyHandler controls the number of concurrent HTTP requests.
ConcurrencyMetrics captures various metrics related to managing concurrency for the client's interactions with the API.
RequestIDKey is type used as a key for storing and retrieving request-specific identifiers from a context.Context object.