code: public Future<RecordMetadata> sendMessageRaw(ProducerType type, KafkaMessage message,
              Callback callback) {
          String key = message.key();
          ProducerRecord<String, byte[]> record = StringUtils.isEmpty(key)
                  ? new ProducerRecord<>(message.topic(), message.content())
                  : new ProducerRecord<>(message.topic(), key, message.content());
          KafkaProducer<String, byte[]> producer = getJavaProducer(type);
          return producer.send(record, callback);
      }
docs: Sends a message asynchronously, specifying {@link ProducerType}.
  
  <p>
  This methods returns the underlying Kafka producer's output directly to
  caller, not converting {@link RecordMetadata} to {@link KafkaMessage}.
  </p>
  
  @param type
  @param message
  @param callback
  @return
  @since 1.3.1