Python3.6, AsyncIO, Flask, RabbitMQ. A simple and powerful combination for IoT data integrity.
Undoubtedly this will be the decade of low-cost and high-performance cloud IoT core development. All cloud IoT solutions will have to meet the same two fundamental requirements: Performance and Data Integrity. Having said that, AsyncIO comes to mind. While researching similar topics on cloud IoT solutions, we noticed that the vast majority of such solutions primarily includes performance. In this discussion we would like to demonstrate how you can ensure that a low-cost, fast developed cloud IoT core can ensure that its data is not corrupted and is accurate for the user. Technically speaking, it is very interesting to analyze how a bucket of async/await tasks can handle (consume or even produce) messages from or to message queues, interact with other (even non pythonic) modules inside the core, manage socket connections and many other functionalities that make Python3.6+ the heart of any IoT core. Note that it is equally important to check imported data with periodic tasks, acquire statistics from devices and sanitize database data in order to ensure data integrity. Our goal: Firstly, to encourage new developers to get involved with cloud IoT cores and use Python and AsyncIO as the heart of their core. Secondly, as new developers we would like to show our logic and our prefered python libraries and techniques in order to receive feedback from more experienced developers. We are a team of software engineers located in Athens, Greece working for a fast growing startup in San Francisco (https://www.veturilo.io). We have developed our own cloud IoT core for a vehicle fleet management SaaS.