Skip to content

Transactional API #78

Open
Open
@mr-swifter

Description

@mr-swifter

Transactional API is required to use Exactly Once Semantics provided by Kafka.

One of the ideas how to structure this:

  • Make new actor KafkaTransactionalProducer which supports regular KafkaProducer API and transactional API (like beginTransaction, commitTransaction, abortTransaction etc. Maybe it's simpler to make KafkaProducer as class and inherit transactional producer from it to avoid code duplication
    • KafkaTransactionalProducer should have send and sendOffset within a transaction
  • KafkaTransactionalProducer should take transactional.id as parameter.
  • KafkaTransactionalProducer should call rd_kafka_init_transactions(...) and make sure it's initialised and not fenced with others.
  • KafkaTransactionalProducer should handle retriable errors and tries to recover. Possible such errors also need to be delivered to optional callback (as notification)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions