ensureValueFreshness that checks if that value is "stale", and if so, requests a fresh value from an external service and write the new value to the store.getFreshValue that returns the current value if it is fresh, if it's stale, it triggers a refresh, returning the new value.getFreshValue many times, with only a single refresh happening, and all subsequent requests waiting for the result of the pending refresh