Skip to content

Commit d3ee8bb

Browse files
Merge pull request #214617 from spelluru/ehubkafka1014
idempotency support
2 parents deeeeb3 + 628dbe3 commit d3ee8bb

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

articles/event-hubs/apache-kafka-frequently-asked-questions.yml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ metadata:
44
description: This article answers frequent questions asked about Azure Event Hubs' support for Apache Kafka clients not covered elsewhere.
55
ms.topic: faq
66
ms.service: event-hubs
7-
ms.date: 09/20/2021
7+
ms.date: 10/14/2022
88
title: Frequently asked questions - Event Hubs for Apache Kafka
99
summary: This article provides answers to some of the frequently asked questions on migrating to Event Hubs for Apache Kafka.
1010

@@ -15,24 +15,24 @@ sections:
1515
- question: |
1616
Does Azure Event Hubs run on Apache Kafka?
1717
answer: |
18-
No. Azure Event Hubs is a cloud-native multi-tier broker with support for multiple protocols that is developed and maintained by Microsoft and does not use any Apache Kafka code. One of the supported protocols is the Kafka RPC protocol for the Kafka client's consumer and producer APIs. Event Hubs works with many of your existing Kafka applications. For more information, see [Event Hubs for Apache Kafka](event-hubs-for-kafka-ecosystem-overview.md). Because the concepts of Apache Kafka and Azure Event Hubs are very similar (but not identical), we are able to offer the unmatched reliability of Azure Event Hubs to customers with existing Apache Kafka investments.
18+
No. Azure Event Hubs is a cloud-native multi-tier broker with support for multiple protocols that is developed and maintained by Microsoft and doesn't use any Apache Kafka code. One of the supported protocols is the Kafka RPC protocol for the Kafka client's consumer and producer APIs. Event Hubs works with many of your existing Kafka applications. For more information, see [Event Hubs for Apache Kafka](event-hubs-for-kafka-ecosystem-overview.md). Because the concepts of Apache Kafka and Azure Event Hubs are very similar (but not identical), we're able to offer the unmatched reliability of Azure Event Hubs to customers with existing Apache Kafka investments.
1919
2020
- question: |
2121
Event Hubs consumer group vs. Kafka consumer group
2222
answer: |
23-
What's the difference between an Event Hub consumer group and a Kafka consumer group on Event Hubs? Kafka consumer groups on Event Hubs are fully distinct from standard Event Hubs consumer groups.
23+
What's the difference between an Event Hubs consumer group and a Kafka consumer group on Event Hubs? Kafka consumer groups on Event Hubs are fully distinct from standard Event Hubs consumer groups.
2424
2525
**Event Hubs consumer groups**
2626
27-
- They are Managed with create, retrieve, update, and delete (CRUD) operations via portal, SDK, or Azure Resource Manager templates. Event Hubs consumer groups can't be autocreated.
28-
- They are children entities of an event hub. It means that the same consumer group name can be reused between event hubs in the same namespace because they're separate entities.
27+
- They're Managed with create, retrieve, update, and delete (CRUD) operations via portal, SDK, or Azure Resource Manager templates. Event Hubs consumer groups can't be autocreated.
28+
- They're children entities of an event hub. It means that the same consumer group name can be reused between event hubs in the same namespace because they're separate entities.
2929
- They aren't used for storing offsets. Orchestrated AMQP consumption is done using external offset storage, for example, Azure Storage.
3030
3131
**Kafka consumer groups**
3232
33-
- They are autocreated. Kafka groups can be managed via the Kafka consumer group APIs.
33+
- They're autocreated. Kafka groups can be managed via the Kafka consumer group APIs.
3434
- They can store offsets in the Event Hubs service.
35-
- They are used as keys in what is effectively an offset key-value store. For a unique pair of `group.id` and `topic-partition`, we store an offset in Azure Storage (3x replication). Event Hubs users don't incur extra storage costs from storing Kafka offsets. Offsets are manipulable via the Kafka consumer group APIs, but the offset storage *accounts* aren't directly visible or manipulable for Event Hub users.
35+
- They're used as keys in what is effectively an offset key-value store. For a unique pair of `group.id` and `topic-partition`, we store an offset in Azure Storage (3x replication). Event Hubs users don't incur extra storage costs from storing Kafka offsets. Offsets are manipulable via the Kafka consumer group APIs, but the offset storage *accounts* aren't directly visible or manipulable for Event Hubs users.
3636
- They span a namespace. Using the same Kafka group name for multiple applications on multiple topics means that all applications and their Kafka clients will be rebalanced whenever only a single application needs rebalancing. Choose your group names wisely.
3737
- They fully distinct from Event Hubs consumer groups. You **don't** need to use '$Default', nor do you need to worry about Kafka clients interfering with AMQP workloads.
3838
- They aren't viewable in the Azure portal. Consumer group info is accessible via Kafka APIs.
@@ -42,7 +42,12 @@ sections:
4242
answer: |
4343
Authenticating by using [OAuth 2.0 and shared access signature](event-hubs-for-kafka-ecosystem-overview.md#security-and-authentication) is supported.
4444
45-
Shared access signature tokens are [generated](authenticate-shared-access-signature.md#generate-a-shared-access-signature-token) by using an authorization rule and one of its signing keys. This is not supported when using the Event Hubs for Apache Kafka endpoint.
45+
Shared access signature tokens are [generated](authenticate-shared-access-signature.md#generate-a-shared-access-signature-token) by using an authorization rule and one of its signing keys. It isn't supported when using the Event Hubs for Apache Kafka endpoint.
46+
47+
- question: |
48+
Does Azure Event Hubs support Apache Kafka idempotent producers and consumers?
49+
answer: |
50+
Yes. Azure Event Hubs supports Apache Kafka idempotent producers and consumers.
4651
4752
additionalContent: |
4853

articles/event-hubs/event-hubs-for-kafka-ecosystem-overview.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Use event hub from Apache Kafka app - Azure Event Hubs | Microsoft Docs
33
description: This article provides information on Apache Kafka support by Azure Event Hubs.
44
ms.topic: overview
5-
ms.date: 06/27/2022
5+
ms.date: 10/14/2022
66
---
77

88
# Use Azure Event Hubs from Apache Kafka applications
@@ -96,6 +96,12 @@ The Event Hubs for Apache Kafka feature is one of three protocols concurrently a
9696

9797
Additionally, Event Hubs features such as [Capture](event-hubs-capture-overview.md), which enables extremely cost efficient long-term archival via Azure Blob Storage and Azure Data Lake Storage, and [Geo Disaster-Recovery](event-hubs-geo-dr.md) also work with the Event Hubs for Kafka feature.
9898

99+
## Idempotency
100+
101+
Event Hubs for Apache Kafka supports both idempotent producers and idempotent consumers.
102+
103+
One of the core tenets of Azure Event Hubs is the concept of **at-least once** delivery. This approach ensures that events will always be delivered. It also means that events can be received more than once, even repeatedly, by consumers such as a function. For this reason, it's important that the consumer supports the [idempotent consumer](https://microservices.io/patterns/communication-style/idempotent-consumer.html) pattern.
104+
99105
## Apache Kafka feature differences
100106

101107
The goal of Event Hubs for Apache Kafka is to provide access to Azure Event Hubs capabilities to applications that are locked into the Apache Kafka API and would otherwise have to be backed by an Apache Kafka cluster.

0 commit comments

Comments
 (0)