IOT Hub, Event Hub and Event Grid are Azure services that have some similarities in name but today I’d like help with any confusion between them by talking about how they are related and how they’re different.


I’ll start with IOT Hub and Event Hubs. Both Azure services are designed for large scale data ingestion, from either an IOT enabled device or from an application. The primary difference between these is that Event Hubs only take in data, whereas IOT Hub can facilitate 2-way communication to an IOT enabled device.

For example, IOT Hub can receive a signal from a device that’s sensing a pressure and it can also send firmware or software updates back down to that IOT device. An Event Hub is only one-way communication; it can’t talk back to the device that is sending the information.

In the screenshot below of a reference architecture published by Microsoft, it shows an example of using data from an Event Hub to then perform some stream analytics or maybe pump that data into a machine learning algorithm or data warehouse. For this illustration, you could substitute Event Hub for IOT Hub as they are both services for capturing large amounts of data and then analyzing or consuming it.

IoTHub_EventHub_EventGrid_01 (002)

Moving on to the Event Grid. This is designed to process events, not data. An Event Grid would be made aware of an event and then take action when a certain event takes place. This screenshot below (another diagram from the Microsoft Event Grid page), is an illustration of how it fits into the event processing world.

IoTHub_EventHub_EventGrid_02

On the left side you see event sources or systems that can output information or events. Those events are received by the Event Grid and once received it can take some action.

Let’s say a file was placed in a certain blob storage container. I could send that info to the Event Grid and it would perhaps fire off a logic app, for instance. The two boxes I show in red are Event Hub and IOT Hub, showing that you could use Event Grid to sense when an Event or IOT Hub received a message, then based on that message, take some additional action.

The box on the lower left is Custom Topics. This indicates that you can create your own custom events from a custom application. So, if you’ve written your own application, you can submit events to the Event Grid and then kick off other processes in the Azure ecosystem.

Another common use of the Event Grid would be at the subscription or resource group level. If something changed in the subscription or a resource was added to a group, you could take some action like notifying people that a new resource was added.

I hope this quick overview of the similarities and differences between IOT Hub, Event Hubs and Event Grid cleared up any confusion as to how they are used. If you have more questions about these services or any Azure service, you’re in the right place. Click the link below or contact us, we’re here to help.