Azure IoT Hub vs Azure Event Hubs

As part of my learning, I keep looking out for info presented through tables & comparison charts as they summarize lengthy topics & are useful to review what I learn. I post them with the tag ComparisonChart to revisit occasionally.

One of the main use cases for IoT Hub is to gather telemetry from devices. For this reason, IoT Hub is often compared to Azure Event Hubs.

Like IoT Hub, Event Hubs is an event processing service that enables event and telemetry ingress to the cloud at massive scale, with low latency and high reliability.

However, the services have many differences:

Area IoT Hub Event Hubs
Communication patterns Enables device-to-cloud communications (messaging, file uploads, and reported properties) and cloud-to-device communications (direct methods, desired properties, messaging). Only enables event ingress (usually considered for device-to-cloud scenarios).
Device state information Device twins can store and query device state information. No device state information can be stored.
Device protocol support Supports MQTT, MQTT over WebSockets, AMQP, AMQP over WebSockets, and HTTP. Additionally, IoT Hub works with the Azure IoT protocol gateway, a customizable protocol gateway implementation to support custom protocols. Supports AMQP, AMQP over WebSockets, and HTTP.
Security Provides per-device identity and revocable access control. See the Security section of the IoT Hub developer guide. Provides Event Hubs-wide shared access policies, with limited revocation support through publisher's policies. IoT solutions are often required to implement a custom solution to support per-device credentials and anti-spoofing measures.
Operations monitoring Enables IoT solutions to subscribe to a rich set of device identity management and connectivity events such as individual device authentication errors, throttling, and bad format exceptions. These events enable you to quickly identify connectivity problems at the individual device level. Exposes only aggregate metrics.
Scale Is optimized to support millions of simultaneously connected devices. Can support a more limited number of simultaneous connections--up to 5,000 AMQP connections, as per Azure Service Bus quotas. On the other hand, Event Hubs enables you to specify the partition for each message sent.
Device SDKs Provides device SDKs for a large variety of platforms and languages, in addition to direct MQTT, AMQP, and HTTP APIs. Is supported on .NET, Java, and C, in addition to AMQP and HTTP send interfaces.
File upload Enables IoT solutions to upload files from devices to the cloud. Includes a file notification endpoint for workflow integration and an operations monitoring category for debugging support. Not supported.
Route messages to multiple endpoints Up to 10 custom endpoints are supported. Rules determine how messages are routed to custom endpoints. For more information, see Send and receive messages with IoT Hub. Requires additional code to be written and hosted for message dispatching.

Comments