Request rate limiting based on token buckets, and dynamically adjust the rate limit based on the upstream response time.