An Azure real-time data ingestion service.
Hi @Priyanka Sundararajan
In addition to the information already provided, a few practical points may be useful when evaluating Kafka transactions with Azure Event Hubs:- Azure Event Hubs provides Kafka protocol compatibility, but it is not a Kafka broker deployment. Therefore, Kafka broker internals such as __transaction_state and the implementation details of the Transaction Coordinator are not exposed to customers.
- The application should rely on the documented Event Hubs transaction behavior and configuration, rather than depending on Kafka-internal topics or broker implementation details.
- For transactional producers, ensure
enable.idempotence=trueand configure a uniquetransactional.id. - Consumers that need transactional visibility should use
isolation.level=read_committed. - Applications should explicitly handle transaction failures and call
abortTransaction()where appropriate rather than relying only on transaction timeout behavior. - The documented maximum transaction timeout is 15 minutes. The producer can configure a lower
transaction.timeout.msvalue. - Kafka Transactions in Event Hubs are currently Public Preview and available on Premium and Dedicated tiers, so please consider the preview status when evaluating the feature for production workloads.
For your specific questions regarding the internal transaction coordinator, transaction-state persistence, and an equivalent of Kafka's __transaction_state topic, there is currently no public Azure Event Hubs documentation describing those internal implementation details.
If you are evaluating this for a specific application architecture, the Event Hubs tier, Kafka client/library version, producer/consumer configuration, and whether exactly once processing is required would be useful to determine the applicable guidance.
I hope this helps. Please let me know if you have any further questions.