3
votes

Different event types are discriminated by some combination of topics/queues and message headers. In Kafka, record streams are still separated out as topics (https://kafka.apache.org/intro). In going through the Azure Event Hubs documentation, I do not see any such idea called out. There are partitions, but these are related to consumer parallelism (https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-what-is-event-hubs#partitions), according to the documentation. Is the idea that you would one namespace in Azure Event Hubs, which contains an Event Hub for each "topic"?

2

2 Answers

5
votes

Yes. I create one Event Hub for what would be a "topic" in Kafka, that is each Event Hub works as one stream of data. The partitions in Event Hub work like the topic partitions in Kafka in that they are units of consumer parallelism within a topic. Creating multiple event hubs within the same namespace appears to allow them to share throughput units (aka the things that cost money), ie the throughput units are like the size of your Kafka cluster.

2
votes

Yes.Event hubs functioning is much similar to the Apache Kafka. Basically Event hubs are messaging entities created within event hub namepaces. Each Event hub has the number of partitions specified during the creation of the Event hub. The Event hubs are used for handling large amount of telemetry data.The event consuming applications subscribed to the event hub can receive the events from the partition to which they have access.

Regarding Kafka, the event hubs are similar to Kafka topics and event hub partitions are similar to Kafka topic partitions.Similar to the Apache Kafka, event hub consumer groups can read the events only from the event hub partitions.

Creating Event hubs within same namespace helps you in managing the event hubs involved in your particular line of business application. Event hub namespaces resemble the Kafka cluster

The main advantage of using Event hubs when compared to the Apache Kafka is Event Hubs are more secured when compared to the Kafka because Event hub uses SAS key based authentication similar to Service Bus entities which is not available in Apache Kafka and the event publishers and consumers must use their own authentication mechanism.