Event Hubs is the service in Azure that provides capability related to the ingestion and storage of events that are needed for streaming.
It can ingest data from a variety of sources. The sources could be IoT sensors or any applications using the Event Hubs SDK to send data. It supports multiple protocols for ingesting and receiving data. These protocols are industry standards, and they include the following:
- HTTP: This is a stateless option and does not require an active session
- Advanced Messaging Queuing Protocol (AMQP): This requires an active session (established connection using sockets) and works with TLS and SSL
- Apache Kafka: This is a distributed streaming platform similar to Stream Analytics
Event Hubs is an event ingestion service. It does not have the capability to query and output query results to another location. That is the responsibility of Stream Analytics, which is covered in the next section.
Event Hubs, being a PaaS on Azure, is highly distributed, highly available, and highly scalable.
Event Hubs comes with the following two SKUs or pricing tiers:
- Basic: This comes with one consumer group and can retain messages for 1 day. It can have a maximum of 100 brokered connections.
- Standard: This comes with a maximum of 20 consumer groups and can retain messages for 1 day with additional storage for 7 days. It can have a maximum of 1,000 brokered connections. It is also possible to define policies in this SKU.
The next screenshot shows the form for creating a new Event Hubs Namespace. It provides an option to choose an appropriate pricing tier along with other important details:
It is important to note that the SKU cannot be changed after provisioning an Event Hubs namespace. Due consideration and planning should be taken before selecting an SKU. The planning should include planning the number of consumer groups required and the number of applications interested in reading events from the event hub.