Is your feature request related to a problem? Please describe.
Right now, when concurrent requests arrive to fetch an expired token, they might both end up making an HTTP call to eSTS. Such calls are redundant and cause extra CPU and network cycles on both eSTS and the service.
Describe the solution you'd like
A probabilistic way to decrease the amount of such redundant calls to eSTS is to introduce randomization (jittering) to calculation of the times when a token needs to be refreshed. This randomization might effectively decrease either the 'refreshOn' or 'expiry' by a few minutes.
Describe alternatives you've considered
Employing more locks inside the codebase.
Additional context
This feature is even more important when dealing with distributed caches as the overlapping concurrency window is bigger and the amount of service instances running the race is also bigger compared to amount of threads.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4