code: @Override
      @Deprecated
      public Transaction<Type> getTxn(UUID txId) {
          StreamSegments segments = getAndHandleExceptions(
                  controller.getCurrentSegments(stream.getScope(), stream.getStreamName()), RuntimeException::new);
          Status status = getAndHandleExceptions(controller.checkTransactionStatus(stream, txId), RuntimeException::new);
          if (status != Status.OPEN) {
              return new TransactionImpl<>(txId, controller, stream);
          }
          
          Map<Segment, SegmentTransaction<Type>> transactions = new HashMap<>();
          for (Segment s : segments.getSegments()) {
              SegmentOutputStream out = outputStreamFactory.createOutputStreamForTransaction(s, txId, config, segments.getDelegationToken());
              SegmentTransactionImpl<Type> impl = new SegmentTransactionImpl<>(txId, out, serializer);
              transactions.put(s, impl);
          }
          return new TransactionImpl<Type>(txId, transactions, segments, controller, stream, pinger);
          
      }
docs: Moved to {@link TransactionalEventStreamWriterImpl}.
  @deprecated Moved to {@link TransactionalEventStreamWriterImpl}