code: func (wc *watchChan) sync() error {
  	opts := []clientv3.OpOption{}
  	if wc.recursive {
  		opts = append(opts, clientv3.WithPrefix())
  	}
  	getResp, err := wc.watcher.client.Get(wc.ctx, wc.key, opts...)
  	if err != nil {
  		return err
  	}
  	wc.initialRev = getResp.Header.Revision
  	for _, kv := range getResp.Kvs {
  		wc.sendEvent(parseKV(kv))
  	}
  	return nil
  }
docs: // sync tries to retrieve existing data and send them to process.
  // The revision to watch will be set to the revision in response.
  // All events sent will have isCreated=true