code: func (eq *LimitQueue) run() {
  	for {
  		event := eq.next()
  
  		if event == nil {
  			return // nil block means event queue is closed.
  		}
  
  		if err := eq.dst.Write(event); err != nil {
  			// TODO(aaronl): Dropping events could be bad depending
  			// on the application. We should have a way of
  			// communicating this condition. However, logging
  			// at a log level above debug may not be appropriate.
  			// Eventually, go-events should not use logrus at all,
  			// and should bubble up conditions like this through
  			// error values.
  			logrus.WithFields(logrus.Fields{
  				"event": event,
  				"sink":  eq.dst,
  			}).WithError(err).Debug("eventqueue: dropped event")
  		}
  	}
  }
docs: // run is the main goroutine to flush events to the target sink.