Search code examples
apache-kafkaazureservicebusazure-servicebus-topics

What is the equivalent of Kafka Table on Azure Service bus?


Kafka has the concept of streams and tables. Streams represent the happening of events whereas tables represent the state.

Is there a corresponding entity on the Azure resource? Looked at Event Hubs, Event Grids, Servicebus queues and topics. Can't seem to find an equivalent?


Solution

  • As far as I know there is no equivalent.

    I'd say the service that comes closest to Kafka is Azure Event Hubs especially in terms of real-time event processing which Azure Service Bus is not designed for. But still it does not provide the same features, e.g. there are no materialized views (or least I could not find anything about it until now) which relate to Kafka Tables. There is an article relating to Kafka integration with Azure Event Hubs where they also explain the equivalents as well as unsupported features:

    https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-for-kafka-ecosystem-overview

    Whenever I stumble across an article of Microsoft or some other blogs when they talk about event streaming (or event sourcing) and materialized views, for the materialized views part they refer to an Azure Storage service such as Table Storage, CosmosDB or similar in combination with Azure Event Hubs or even Service Bus.

    So I am afraid there is no comparable cloud managed service on Azure as a direct substitute to Kafka at the moment. Would be glad to see another answer that proves me wrong as I would also be interested in that myself.

    During my search I came across some interesting GitHub projects that try to address similar problems on the Azure and .Net stack: