Engineering the Future of Software
16–18 October 2017: Conference & Tutorials
18–19 October 2017: Training
London, UK

Architecturing and securing IoT platforms with microservices

Drasko Draskovic (Mainflux), Janko Isidorovic (Mainflux)
10:4512:15 Monday, 16 October 2017
Microservices, pros and cons
Location: Park Suite (St. James / Regents)
Secondary topics:  Framework-Focused
Average rating: ***..
(3.36, 11 ratings)

Prerequisite Knowledge

  • Knowledge of microservice-based architecture, IoT messaging protocols (like MQTT), and Linux containers and their orchestration

What you'll learn

  • Learn about IoT platform architecture and challenges, the various protocols needed for constrained devices, and how to scale the platform to millions of connected devices via microservices and Docker containers
  • Explore Mainflux, which provides a set of clean and open APIs to easily connect, monitor, manage, and provision any device or sensor, enabling IoT products and systems and simplifying the entire IoT development process


IoT device management and multiprotocol messaging platforms demand specific architectural decisions and high-concurrency approaches due to the massive number of expected devices. IoT platforms are most often used as a middleware, as a software server (a set of servers, in fact) that provides several functionalities and services that are usually needed in designing IoT applications. They often have following roles:

  • Device manager: Accepts device connections on southbound interface
  • Application manager: Accepts application connections on northbound interface
  • Messaging bridge: Relays messages between devices and applications
  • Time series storage engine: Stores and queries measurements data points in the time series format
  • CEP machine with rules engine: Performs complex event processing of incoming time series streams and can automatize triggers and actions based on configurable set of rules

Most often these platforms need to be multiprotocol in order to support the many networking protocols that proliferate in the IoT world (HTTP, WebSocket, MQTT, CoAP, etc.).

Drasko Draskovic and Janko Isidorovic share an architecture, implementation, and testing procedures needed to create an industry-grade IoT platform based on microservices and Docker containers, using popular open source project Mainflux as an example. Mainflux provides a set of clean and open APIs to easily connect, monitor, manage, and provision any device or sensor, enabling IoT products and systems and simplifying the entire IoT development process.

In order to enable the high scalability needed for IoT stampede of devices, Mainflux has been written in highly concurrent languages, notably Go (with some Erlang components). The system has been secured with access control policies and JWTs used for device API keys as well as OAuth 2.0 on the application side. There is ongoing development to introduce PKI Diffie-Hellman ECC device certificates for the highest security applications. Being device and protocol agnostic, Mainflux can be used for development of various IoT use cases. One particularly interesting scenario is using a Mainflux-based network as LoRaWAN LPWAN networking infrastructure—a low-power wide area network that supports low-cost, mobile, and secure bidirectional communication for internet of things (IoT), machine-to-machine (M2M), smart city, and industrial applications.

Photo of Drasko Draskovic

Drasko Draskovic


Drasko is an IoT expert with over 15 years of professional experience. He hacked embedded Linux SW and HW device drivers, designing complex wireless systems in telecom industry. Drasko earned his reputation in open-source community as an author of numerous projects – like WeIO ( or Mainflux ( He is one of the main contributors of the Linux Foundation’s EdgeX Foundry project. Drasko is also author of the book “Scalable Architectures for the Internet of Things” published by O’Reilly and a vivid conference speaker. He holds a MSc in Electrical Engineering from Belgrade University.

Photo of Janko Isidorovic

Janko Isidorovic


Janko Isidorovic is COO of Mainflux. Previously, Janko was an ERP specialist at NELT, southern Europe’s biggest logistic and distribution company, an IT specialist for warehouse operations, and an application and systems engineer. He worked on SAP’s BC implementation team, where he was responsible for SAP landscape design and conceptual design of the business processes and design of interfaces for the MM module. Janko also has significant experience as a project manager; he worked on the GO4YU project, a joint venture between NELT and Telekom Srbija that aimed to provide a mobile, VoIP, and live TV and video on demand streaming platform for Serbian expats in the US and Canada. In 1994, Janko won the First Step to Nobel Prize in Physics, an international competition for high school students organized by the European Physics Society. He holds an MSc in electrical engineering from Belgrade University.