If all software is ultimately automation, we can think of rules engines as software squared - they are software tools that automate the automation itself. A rules engine is an automation tool that enables developers to model the world in a declarative way by providing the highest level of abstraction from the underlying complexity.
In the context of IoT, automation operates across physical things, digital services and people which makes software development in the IoT domain a very complex endeavour. It entails working with real-time sensor data, scaling to thousands or hundreds of thousands of devices, working with existing back-end IT systems, complying with specific enterprise software requirements and in many cases integrating with third-party applications. This has important and unique consequences over how business logic and business rules are built within the IoT application.
There are a variety of rule-based automation technologies that can be applied whithin the IoT domain, but the landscape is difficult to navigate. In our latest white paper How to Choose A Rules Engine, we have compiled a list of seven capabilities that you should look for in any rules engine that you consider using for an IoT application. We explain why each of these seven capabilities is important to help you understand what features to look after when choosing your automation tools.
We start from best practices when evaluating any new tool and look at how powerful it is (its depth of functionality), how easy it is to use (its level of complexity) and how ready it is to support your future needs (based on your growth trajectory and features you may need).
In the case of a rules engine, when looking at the depth of functionality we need to see if it supports complex logic building, how well it handles the time dimension and how it deals with uncertainty.
Ease of use can be assessed by looking at things like how clear the intent of the rule is, if there is a visual representation of the logic you are building and how easy it is to simulate, test and debug rules.
Evaluating the engine’s readiness to grow as your business needs grow can be done by checking how well it responds to changes, how easy it is to extend and integrate with third-party systems, and how well it can scale.