code: func NewCache(c Coordinator, size int, expiration time.Duration) Coordinator {
  	if size <= 0 {
  		size = DefaultSize
  	}
  	if expiration <= 0 {
  		expiration = DefaultExpiration
  	}
  
  	return &cache{
  		Coordinator: c,
  		expiration:  expiration,
  		lru:         lru.New(size),
  	}
  }
docs: // NewCache creates a new Coordinator instance that wraps another Coordinator
  // instance with a cache that retains the latest remote Coordinator state in a
  // client-side LRU cache.
  //
  // If size is <= 0, DefaultSize will be used.
  // If expiration is <= 0, DefaultExpiration will be used.