2
votes

I would like to get some recommendation, for designing a routing of IoT messages in Azure.

I have following scenario: Senors sending messages to Azure IoT Hub in Google Protobuf format. Depending of the type of a message, I want to route the message to different applications inside a service fabric.

My current approach is to use a service fabric application to receive all messages from the IoT hub, parse the protobuf message, send the message depending on their type (attribute inside the protobuf) to an type-specific Azure event hub. Now the applications fetches the messages from their "own" event hub and process the messages.

I'm not sure if this is the best approach. I don't like the fact, to have one event hub for each type of message. Service Bus Topics are probably not an option, because I have a lot of messages (~30k per second). Do I realy need a event hub, to decoupling this process, or does it make sense, to send the messages from the "routing application" direct to the different "type applications"?

What do you think?

Regards, Markus

1
did you look at Azure Functions? Maybe you can receive and process messages in one go. (Depending on how you process them of course)LoekD
Could you elaborate why you don't like your approach? Looks quite standard to me.Mikhail Shilkov
Azure functions, didn't worked as excpected (performance issues). Maybe it works better now... I didn't like the fact, to have so many event hubs (one for each type of message). So a service which is interested in a few types, has to connect and receive from a few event hubs. A pub/sub (one service bus for example) sounds better to me.mananana

1 Answers

2
votes

If you really need high performance you should take a look at IoT Hub and Event Hubs. Azure Event Hubs is a highly scalable data streaming platform and event ingestion service capable of receiving and processing millions of events per second. Event Hubs can process and store events, data, or telemetry produced by distributed software and devices. Data sent to an event hub can be transformed and stored using any real-time analytics provider or batching/storage adapters.

In other hand if you need only 30k messages per second you can go with Premium Messaging.

Comparison of Azure IoT Hub and Azure Event Hubs

Premium Messaging: How fast is it?

What is Event Hubs?