code: private boolean enforceQueueLimit() {
  		int attempt = 0;
  		while (producer.getOutstandingRecordsCount() >= queueLimit) {
  			backpressureCycles.inc();
  			if (attempt >= 10) {
  				LOG.warn("Waiting for the queue length to drop below the limit takes unusually long, still not done after {} attempts.", attempt);
  			}
  			attempt++;
  			try {
  				backpressureLatch.await(100);
  			} catch (InterruptedException e) {
  				LOG.warn("Flushing was interrupted.");
  				break;
  			}
  		}
  		return attempt > 0;
  	}
docs: If the internal queue of the {@link KinesisProducer} gets too long,
  flush some of the records until we are below the limit again.
  We don't want to flush _all_ records at this point since that would
  break record aggregation.
  
  @return boolean whether flushing occurred or not