Clarification on Kafka Transactional API Support and Transaction Guarantees in Azure Event Hubs

Priyanka Sundararajan 0 Reputation points
2026-08-11T09:14:27.1433333+00:00

The Kafka Transactional API is documented as being supported by Azure Event Hubs - https://learn.microsoft.com/en-us/azure/event-hubs/apache-kafka-transactions. In Apache Kafka, transactions are managed by the Transaction Coordinator, which maintains transaction state and persists transaction metadata in the internal __transaction_state topic.

How is this maintained in Azure Event Hubs when using the Kafka protocol?

  • Does Event Hubs have an equivalent Transaction Coordinator or Transaction Manager? How is transaction state maintained internally?
  • Is there an equivalent mechanism to Kafka's __transaction_state topic for persisting transaction metadata?

Is there detailed technical documentation available describing the transaction architecture and guarantees in Azure Event Hubs while using Kafka Transactional API? We are particularly interested in documentation covering the transaction lifecycle, transaction state management, persistence, commit/abort behavior, failure recovery, and consumer visibility of transactional records.

We are looking for information comparable to Kafka's transaction architecture documentation, which explains how the Transaction Coordinator maintains transaction state and how transactional guarantees are enforced.

Any guidance, documentation, architecture references, or insights from the Azure Event Hubs team or community would be greatly appreciated.

Azure Event Hubs

1 answer

Sort by: Oldest
  1. Smaran Thoomu 35,870 Reputation points Microsoft External Staff Moderator
    2026-08-18T18:30:18.0633333+00:00

    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=true and configure a unique transactional.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.ms value.
    • 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.

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.