A com.twitter.cache.FutureCache backed by a com.google.common.cache.Cache.
A com.twitter.cache.FutureCache backed by a com.google.common.cache.LoadingCache.
A com.twitter.cache.FutureCache backed by a com.google.common.cache.LoadingCache.
Any correct implementation should make sure that you evict failed results, and don't interrupt the underlying request that has been fired off. EvictingCache and Future#interrupting are useful tools for building correct FutureCaches. A reference implementation for caching the results of an asynchronous function with a guava LoadingCache can be found at GuavaCache$.fromLoadingCache.
A com.twitter.cache.FutureCache backed by a com.google.common.cache.Cache.
Any correct implementation should make sure that you evict failed results, and don't interrupt the underlying request that has been fired off. EvictingCache and Future#interrupting are useful tools for building correct FutureCaches. A reference implementation for caching the results of an asynchronous function with a guava Cache can be found at GuavaCache$.fromCache.