code: func (e *Etcd) get(path string, recursive bool) (*etcdc.Response, error) {
  
  	hash := cache.Hash([]byte(path))
  
  	resp, err := e.Inflight.Do(hash, func() (interface{}, error) {
  		ctx, cancel := context.WithTimeout(e.Ctx, etcdTimeout)
  		defer cancel()
  		r, e := e.Client.Get(ctx, path, &etcdc.GetOptions{Sort: false, Recursive: recursive})
  		if e != nil {
  			return nil, e
  		}
  		return r, e
  	})
  	if err != nil {
  		return nil, err
  	}
  	return resp.(*etcdc.Response), err
  }
docs: // get is a wrapper for client.Get that uses SingleInflight to suppress multiple outstanding queries.