For all caches, uses a Promise in the value instead of the direct object. This also prevents redundant network requests, since if multiple components are fetching the same item in parallel, the second one will see the (potentially unresolved) promise in the cache, and therefore not refetch.
Uses a global cache for storing serum Market clients to prevent unnecessary network requests.
Market
clients to prevent unnecessary network requests.