code: func newCachedDiscoveryClient(delegate discovery.DiscoveryInterface, cacheDirectory string, ttl time.Duration) *CachedDiscoveryClient {
  	return &CachedDiscoveryClient{
  		delegate:       delegate,
  		cacheDirectory: cacheDirectory,
  		ttl:            ttl,
  		ourFiles:       map[string]struct{}{},
  		fresh:          true,
  	}
  }
docs: // NewCachedDiscoveryClient creates a new DiscoveryClient.  cacheDirectory is the directory where discovery docs are held.  It must be unique per host:port combination to work well.