IoT middleware platforms have become necessary building blocks of every complex vertical IoT solution. Traditionally, the platforms have been built to run in the cloud; wide availability and rich capabilities have driven the first wave of IoT adoption. As the scale and complexity of IoT projects has grown, however, the need to provide solutions that move processing to the network edge has also grown. Down-scaling cloud capabilities is complex in part because of the more modest capabilities of edge computing in typical deployment models. As a result, there are few open solutions that address this need.
We introduce Mainflux (
https://github.com/Mainflux/mainflux) - a IoT Platform for cloud and edge that can simultaneously scale-out to hundreds of nodes in the cloud, but can also scale down to a modest RaspberryPi computer without changing a single line of code. This scalability is achieved thanks to careful architecture, the effectiveness of Go programming language, and technology choices used in the implementation.
We will discuss the platform, its use and application, and our work to bring core concepts from it to various open source projects including EdgeX.