Each request adds a fraction of a token (for example 0.1) and each retry spends one, so retries stay near 10% of traffic. When the budget is empty the client fails fast instead of piling onto a struggling server.