(87) What do open source IoT platforms/projects like Mainflux and EdgeXFoundry mean?

I had the privilege of interviewing Janko Isidorovic, CEO, Mainflux to understand what Open Source IoT Platforms/projects mean and why are they growing in popularity.

Q. What are open source IoT platforms? Why are they becoming popular?

IoT is a complex domain that includes hardware, software, and telecommunication layer in between. When you create IoT products, you need to have expertise across all these layers — connectivity, software in cloud and on-premise, edge, cloud, ML, AI and more. There cannot be a single person who is an expert across all these layers. Therefore, the teams that need to build a smart IoT product needs to be big, which increases your time to market and makes it expensive.

With open-source IoT platforms, you are able to reduce the time-to-market by leveraging the expertise of the community. Mainflux is one such open source platform and EdgeX is edge based open source IoT platform. Hence, both are complimentary to each other.

With open-source IoT platforms, you are able to reduce the time-to-market by leveraging the expertise of the community.

Open-source IoT platforms enable small companies to compete with the big ones. So, instead of architecture, they can focus on devices and the applications to be used by the end customer.

Open-source IoT platforms enable small companies to compete with the big ones. So, instead of thinking about how to build an architecture, they can focus on devices and the applications to be used by the end customer.

Q2. What is Mainflux?

Of the entire IoT stack, Mainflux forms the part of the application layer and is solving issues in that layer. It tries to be agnostic to any deployment methods, to networks, to devices and applications you are building. It is is published under the very permissive Apache v2.0 license which guarantees patent-free software usable by the industry in proprietary and commercial products.

It is deployed either on cloud or on-premise as long as cloud supports containers. Due to the architecture and technology choices, Mainflux has a small footprint, which makes it easy to deploy on the edge if you need. You can deploy it in Raspberry Pi device and also scale to a multi-data center case with Kubernetes and Cassandra database.

Mainflux is not locked into single cloud and can be deployed into AWS or MS Azure or Google IoT or bare-metal cloud.

Q3. What is the business model of Mainflux?

At this point, we provide services around Mainflux and help implement Mainflux in their environment either as a product or in-company IoT implementations. We were profitable within the first year. With the growth in Mainflux adoption, we realized that the architecture choices that we made were modern and lean.

Q4. Help us understand the Mainflux infrastructure stack?

Architecture of Mainflux was similar to the architecture of EdgeXFoundry. Both platforms were using microservices, both were using docker and container and both had similar strategies to tackle modular and scalable plug and play architecture.

You don’t need to pay any license fees for any component of Mainflux.

We have four building blocks:

  1. Device connectivity
  • It supports HTTP, MQTT, WebSocket, and CoAP. We use NATS as a system event bus to bridge messages between these protocols.

2. Management

  • It manages users, things, and channels. Users can login to the system and manage the system. Things are both devices and applications. We realized that applications and devices are really similar in structure and behavior. So, we use single entity for both things and applications. Channels can be thought of as extended MQTT topics. Only devices and applications connected to same channel can talk to each other. This is a way of securing the systems so that unauthorized devices cannot listen to something they are not authorized.

3. Database

  • For telemetry, we support MongoDB, CassandraDB or InfluxDB, which are more popular. For POC, Grafana and InfluxDB is quick and easy for rich dashboard. For scalable systems for multiple data centres, we can use MongoDB or CassandraDB.

4. NGINX

  • Reverse proxy (NGINX) for security and load-balancing
  • We use NGINX out of the box because it is the only open source that supports both TCP and UDP proxy and also enables

Q5. Which are the most prominent open source IoT platforms available in the market?

There are more than 450 IoT platforms in the market. Of the open source IoT platforms, the prominent ones are:

However, they are all developed in Java. Mainflux, however is developed using Go language.

Q6. What is Go language and what are its benefits?

Go is a general purpose language developed by Google. In 2009, it had its first public introduction. Initially the EdgeX project was developed in Java but the footprint was pretty big and took too long to start the system. The codebase was then migrated from Java to Go and improvements in footprint were huge, close to 80%. While Java miscroservice startup takes 30 seconds, Go microservice takes 0.5 seconds. For scaling the system, Go language is efficient.

Q7. What do you mean by footprint?

The amount of memory that you need to have in the system in order to start the system up , the amount of hard drive, CPU efficiency all contributes to footprint.

Other Questions:

Q8. What is EdgeXFoundry Project? And what are its goals?

Q9. Help us navigate the architecture of EdgeXFoundry Project?

Q10. How many open source IoT projects are active today?

Q11. You are the Chair of the Application Working Group of EdgeX Foundry Project. What is this working group all about and what are your responsibilities as a chair?

Q12. How many working groups are there in EdgeXFoundry?

Q13.Help us understand the difference between bodies like EdgeXFoundry and Industrial IoT Consortium.

Q14.To all IoT implementors, how should they decide whether to go open source way, or build themselves?

--

--