code: func (b *batchProducer) returnRecordsToBuffer(records []batchRecord) {
  	for _, record := range records {
  		// Not using b.Add because we want to preserve the value of record.sendAttempts.
  		b.records <- record
  	}
  }
docs: // returnRecordsToBuffer can block if the buffer (channel) is full, so you might want to
  // call it in a goroutine.
  // TODO: we should probably use a deque internally as the buffer so we can return records to
  // the front of the queue, so as to preserve order, which is important.