Hi all,

Reading this <https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaging> document about transactions in Kafka, specifically epigraphs 5.2 WriteTxnMarkerRequest and 5.3 Writing the final Commit or Abort Message.

What I understand  from *5.2* is that the coordinator sends a "write txt market request" to each topic/partition leader in the transaction, then, each leader broker in those topic-partition write a Commit or Abort message to the log, then, using this information the Consumer for that particular topic-partition decide to read the messages (in case of Commit) or to drop the message (in case of Abort).

My doubt is; those messages that passed the "write txt market request" phase for a particular topic-partition (the Commit cases) are just delivered to the user?, or hided from the user until full transaction confirms it Committed?, in the case is delivered to the user, there could be inconsistent reads, because another topic-partition could fail and then the full transaction needs to abort. On the other hand, if those messages are not delivered to user until the Consumer reads a Commit message for the full transaction *(5.3*), here is my second question; how this works?, i.e how a Consumer is aware that a particular message belonging to a transaction can be delivered to the user, i.e the transaction that owns the succeed message?

I hope is clear this explanation, I have not found this question in any doc.

Thanks in advance,

Reply via email to