Open
Description
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 regularKafkaProducer
API and transactional API (likebeginTransaction
,commitTransaction
,abortTransaction
etc. Maybe it's simpler to makeKafkaProducer
as class and inherit transactional producer from it to avoid code duplication -
KafkaTransactionalProducer
should havesend
andsendOffset
within a transaction
KafkaTransactionalProducer
should taketransactional.id
as parameter.KafkaTransactionalProducer
should callrd_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
Labels
No labels