anchor.diff:  Cache<String, String> cacheContext = Cache.of(Caching.getCache("cacheName", String.class, String.class));
   
   // Decorate your call to BackendService.doSomething()
  -Try.CheckedFunction<String, String> cachedFunction = Decorators.ofCheckedSupplier(() -> backendService.doSomething())
  +Try.CheckedFunction<String, String> cachedFunction = Decorators
  +    .ofCheckedSupplier(() -> backendService.doSomething())
       .withCache(cacheContext)
       .decorate();
   String value = Try.of(() -> cachedFunction.apply("testKey")).get();
  
positive.code: RateLimiter rateLimiter = RateLimiter.of("backendName", config);
  
  // Decorate your call to BackendService.doSomething()
  Try.CheckedSupplier<String> restrictedSupplier = Decorators.ofCheckedSupplier(() -> backendService.doSomething())
          .withRateLimiter(rateLimiter)
          .decorate();
  
  // First call is successful
  Try<String> firstTry = Try.of(restrictedSupplier);
  
negative.code: Retry retryContext = Retry.ofDefaults();`
  
  // Decorate your call to BackendService.doSomething()
  Try.CheckedSupplier<String> decoratedSupplier = Decorators
      .ofCheckedSupplier(() -> backendService.doSomething())
      .withCircuitBreaker(circuitBreaker)
      .withRetry(Retry.ofDefaults())
      .decorate();
  
  // Invoke the decorated function and recover from any exception
  Try<String> result = Try.of(supplier)
  