Many, if not most, IoT solutions at some point require things (the T in IoT) to submit some data to a back end application for processing.
That data might be purely informational like the current temperature in the room is 22 degrees Centigrade, or it might contain information of more importance like there is smoke in the room. In both cases, the device needs to establish and/or maintain a network connection to the application it reports the data to. Given the robustness of the internet protocol and the wonderful IoT application protocols that have been defined on top of it, this seems to be a trivial task at first sight. However, many applications developed using these protocols run into serious problems during production, reaching from stale connections to lost messages, when network reliability is not the same as in the PoC environment and application developers start doing unexpected things with APIs.
In this session I will talk about the issues that I have encountered in real-world solutions that customers have designed on top of Eclipse Hono, a device connectivity layer providing means to connect large numbers of devices to a clound back end using arbitrary protocols like HTTP, MQTT, AMQP 1.0 and CoAP. However, the results presented are applicable to other IoT platforms as well.
I will share technical insights and common pitfalls that we found while debugging problems with establishing the connection with devices, transferring and processing data and properly dealing with general unreliability of network and compute resources.
Attendees of the session will learn about the pros and cons of the commonly used IoT protocols and what to keep in mind when picking one for the particular use case at hand. They will also be able to better understand issues with device connectivity, what to look for and how to prevent these issues in the first place in order to improve the robustness of the overall solution.