The Throttling design pattern is a software design pattern that limits the rate at which a process can be executed, in order to prevent overloading of resources, improve performance, and avoid service degradation or failure, by using techniques such as fixed rate, sliding window, token bucket, and leaky bucket.