title: How to incorporate blocking code into Mutiny using reactive-messaging
body: <p>I wanted to get an opinion on how to properly implement this and if this is the right approach to doing so. So I have created a fully reactive application using reactive-messaging but have come to know that I have an overarching constraint - and that constraint being Oracle. As you know, JDBC is inherently blocking in nature and cannot <em>really</em> be executed asynchronously. I am trying to figure out a way to achieve this so that the event loop thread does not get blocked and so far the only thing that <em>seems</em> to work is something like this:</p>
  <pre><code>@Incoming(KAFKA_DATA)
  @Blocking
  @Acknowledgment(Acknowledgment.Strategy.MANUAL)
  fun consume(record: Message&lt;Notification&gt;): CompletionStage&lt;Void&gt; {
      val metadata = record.getMetadata(IncomingKafkaRecordMetadata::class.java).orElse(null)
      if (metadata != null) {
          log.debug(
              &quot;Received Kafka Record - &quot; +
                  &quot;topic: {}, &quot; +
                  &quot;partition: {}, &quot; +
                  &quot;offset: {}, &quot; +
                  &quot;payload: {}&quot;,
              metadata.topic, metadata.partition, metadata.offset, record.payload
          )
      }
      return Uni.createFrom().voidItem()
          .invoke { -&gt; invokeBlockingCall(record.payload) }
          .call { -&gt; handleSuccess(record) }
          .onFailure().call { failure -&gt; handleFailure(failure, record) }
          .runSubscriptionOn(Infrastructure.getDefaultExecutor())
          .subscribeAsCompletionStage()
  }
  </code></pre>
  <p>I have managed to get that working as-is but I am unsure if it is the correct/efficient way of doing so. Does anyone have any suggestions on how to achieve such a task? Any suggestions are greatly appreciated and taken into account, thanks!</p>