code: func (f *NotifyExecution) RollForward(c context.Context) (muts []tumble.Mutation, err error) {
  	reg := GetRegistry(c)
  	dist, _, err := reg.MakeDistributor(c, f.CfgName)
  	if err != nil {
  		logging.Fields{
  			logging.ErrorKey: err,
  			"cfg":            f.CfgName,
  		}.Errorf(c, "Failed to make distributor")
  		return
  	}
  
  	q := &model.Quest{ID: f.Notification.ID.Quest}
  	if err := ds.Get(ds.WithoutTransaction(c), q); err != nil {
  		return nil, errors.Annotate(err, "getting Quest").Err()
  	}
  	rslt, err := dist.HandleNotification(&q.Desc, f.Notification)
  	if err != nil {
  		// TODO(riannucci): check for transient/non-transient
  		logging.Fields{
  			logging.ErrorKey: err,
  			"cfg":            f.CfgName,
  		}.Errorf(c, "Failed to handle notification")
  		return
  	}
  	if rslt != nil {
  		return reg.FinishExecution(c, f.Notification.ID, rslt)
  	}
  	return
  }
docs: // RollForward implements tumble.Mutation.