# Functions
NewMetrics creates metrics to be used for monitoring congestion control.
# Structs
AIMDController implements the Additive-Increase/Multiplicative-Decrease algorithm which is used in TCP congestion avoidance.
LimitedRetrier executes the initial request plus a configurable limit of subsequent retries.
# Interfaces
Controller handles congestion by: - determining if calls to object storage can be retried - defining and enforcing a back-pressure mechanism - centralising retries & hedging.
Hedger orchestrates request "hedging", which is the process of sending a new request when the old request is taking too long, and returning the response that is received first.
Retrier orchestrates requests & subsequent retries (if configured).