code: func (db *ProtoWrapper) Watch(resp func(datasync.ProtoWatchResp), closeChan chan string, keys ...string) error {
  	return db.broker.Watch(func(msg keyval.BytesWatchResp) {
  		resp(NewWatchResp(db.serializer, msg))
  	}, closeChan, keys...)
  }
docs: // Watch subscribes for changes in datastore associated with any of the <keys>.
  // Callback <resp> is used for delivery of watch events.
  // Channel <closeChan> is used to close key-related goroutines
  // Any encountered error is returned as well