Class TransactionImpl

java.lang.Object
org.apache.pulsar.client.impl.transaction.TransactionImpl
All Implemented Interfaces:
io.netty.util.TimerTask, org.apache.pulsar.client.api.transaction.Transaction

public class TransactionImpl extends Object implements org.apache.pulsar.client.api.transaction.Transaction, io.netty.util.TimerTask
The default implementation of Transaction.

All the error handling and retry logic are handled by this class. The original pulsar client doesn't handle any transaction logic. It is only responsible for sending the messages and acknowledgements carrying the transaction id and retrying on failures. This decouples the transactional operations from non-transactional operations as much as possible.

  • Method Details

    • run

      public void run(io.netty.util.Timeout timeout) throws Exception
      Specified by:
      run in interface io.netty.util.TimerTask
      Throws:
      Exception
    • registerProducedTopic

      public CompletableFuture<Void> registerProducedTopic(String topic)
    • registerSendOp

      public void registerSendOp(CompletableFuture<org.apache.pulsar.client.api.MessageId> sendFuture)
    • registerAckedTopic

      public CompletableFuture<Void> registerAckedTopic(String topic, String subscription)
    • registerAckOp

      public void registerAckOp(CompletableFuture<Void> ackFuture)
    • registerCumulativeAckConsumer

      public void registerCumulativeAckConsumer(ConsumerImpl<?> consumer)
    • commit

      public CompletableFuture<Void> commit()
      Specified by:
      commit in interface org.apache.pulsar.client.api.transaction.Transaction
    • abort

      public CompletableFuture<Void> abort()
      Specified by:
      abort in interface org.apache.pulsar.client.api.transaction.Transaction
    • getTxnID

      public org.apache.pulsar.client.api.transaction.TxnID getTxnID()
      Specified by:
      getTxnID in interface org.apache.pulsar.client.api.transaction.Transaction
    • checkIfOpen

      public <T> boolean checkIfOpen(CompletableFuture<T> completableFuture)