Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-5527 Idempotent/transactional Producer part 2 (KIP-98)
  3. KAFKA-5342

Distinguish abortable failures in transactional producer

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.11.0.1, 1.0.0
    • clients, core, producer
    • None

    Description

      The transactional producer distinguishes two classes of user-visible errors:

      1. Abortable errors: these are errors which are fatal to the ongoing transaction, but which can be successfully aborted. Essentially any error in which the producer can still expect to successfully send EndTxn to the transaction coordinator is abortable.
      2. Fatal errors: any error which is not abortable is fatal. For example, a transactionalId authorization error is fatal because it would also prevent the TC from receiving the EndTxn request.

      At the moment, it's not clear how the user would know how they should handle a given failure. One option is to add an exception type to indicate which errors are abortable (e.g. AbortableKafkaException). Then any other exception could be considered fatal.

      Attachments

        Issue Links

          Activity

            People

              hachikuji Jason Gustafson
              hachikuji Jason Gustafson
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: