Challenge
Nuboj, meaning ‘clouds’ in Esperanto, is an innovative IoT product by Tempestive, designed to meet the demands of companies engaged in manufacturing and selling devices and machines. It offers seamless integration with the cloud, enabling efficient data collection and management from connected devices. Nuboj is particularly beneficial for organizations looking to minimize machine maintenance, enhance warranty management, redesign their products, and safeguard their brand reputation. As a modular, ready-to-use, and easy-to-configure system, Nuboj accelerates IoT implementation, cuts costs, and boasts remarkable scalability. More than a data collection tool, Nuboj excels in processing data and extracting strategic insights right from the outset. Currently, Nuboj connects tens of thousands of diverse machines across various industries, ranging from professional ovens and operating tables to stoves and animal-related devices, among others.
Nuboj’s main target audience is small and medium-sized enterprises that manufacture stoves, ovens, dishwashers, refrigerators, vending machines, wearable devices, healthcare devices, and industrial machinery.
The previous version of the application had a microservices architecture, but it was limited in scalability and required expensive resources. It was also cloud-based, whereas today some customers require an on-premise solution (for security or cost issues) that can scale from a few to several hundred thousand devices.
In addition, we needed to adapt the solution to very small systems using a more modular approach.
We needed this to be more cost-efficient and to be more versatile in our business propositions to ensure the acquisition of new customers and the retention of existing ones.
In addition, the previous version of the software was difficult to maintain due to inadequate development tools and required very high skills.
Solution
Our transformation journey was marked by a crucial decision: the adoption of Dapr and Kubernetes (K8s). This was not just a technical upgrade, but a paradigm shift in the way we approached IoT integration.
We envisioned a more agile and streamlined architecture that would not only reduce costs but also improve our development and team management processes. The goal was to create a system in which proprietary modules could be seamlessly integrated, leading to a more “composable” model, one in which flexibility was key.
Perhaps the most significant change was the move to a Publish/Subscribe API using Dapr for communication between microservices. This approach was particularly well suited to handle the flow of data from a myriad of devices, an essential aspect of our IoT solution.
Impact
Nuboj’s transformation with Dapr has been nothing short of revolutionary. We achieved platform independence, freeing ourselves from the constraints of the underlying technologies. The modular nature of the new Nuboj made it easy to adapt to different scales and needs. We have eliminated the need to use expensive infrastructure, being able to manage a fair number of devices even using small on-premise servers. In addition, we are able to use some of the microservices developed within small edge gateways. We can handle devices that have a significant frequency of sending large amounts of data.
Dapr’s binding API has added additional layers of independence (decoupling the solution from some underlying technologies such as, for example, databases or messaging software),
Development, implementation and management have become easier, faster and more cost-effective. Our security measures have strengthened and the responsiveness of the application has improved dramatically.
Another exciting development has been our new programming language independence with polyglot application development with multiple languages. Most of Nuboj’s modules are written in C#, some are written in Java. Thanks to Dapr, we can now seamlessly use Python for AI applications, opening up a new world of possibilities.
Last but not least, we have been able to significantly reduce the cost of our product and be more competitive in the market.
Architecture
Nubox is based on a large set of micro services. These micro services are completely modular, scalable, and independent of each other. The microservices are organized into modules that aggregate related microservices.
Nuboj consists of several modules. For example, there is a module that keeps track of the structure of connected devices, in other words, the management of the digital twin and the relationship between devices and users. Another module is one that manages the real-time status of the device.
Communication with microservices is done via gRPC APIs that Dapr provides. On the other hand, the main means of communicating the data flow and commands between devices and microservices is realized through a publish/subscribe message broker. Depending on the exact requirements of the customer, the broker is either based on MQTT, Redis, or Kafka.
The underlying infrastructure technology is interchangeable thanks to the use of Dapr. Redis is used as the distributed cache, and PostgreSQL as the store for events and statistics.
Nuboj is hosted on a Kubernetes cluster. The functionality is exposed to the outside world via a custom-built, lightweight API gateway.
Watch the Dapr Community Call recording about this case study on Youtube.