Iotiliti uses Microservices architecture which is a specialisation of an implementation approach for service-oriented architectures, used to build flexible, independently deployable software systems.
This architecture structures the platform as a set of loosely coupled, collaborating services. Each service implements a set of narrowly, related functions. For example, an application might consist of services such as device communication service, customer management service etc.
A microservice approach segregates functionality into small autonomous services.
It scales out by deploying independently and replicating these services across servers/VMs/containers.
A traditional application (Web app or large service) usually has most of its functionality within a single process (Usually internally layered, though).
It scales by cloning the whole app on multiple servers/VMs/containers.
Resource demanding services can be deployed in multiple servers to enhance performance and keep away from other services so that they do not affect them.
Larger applications can remain unaffected by the failure of a single module. Loose coupling in microservices prevents this.
Less dependency and easy to modify and test.
New features and advanced customizations for partners can be implemented.
Microservices architecture helps in faster development and making the deployment process smoother.
Allows to choose technology that is best suited for a particular functionality.
One of the main features of the Iotiliti platform is to allow users and/or partners to define rules that can be triggered automatically and can perform different tasks based on readings from sensors. These rules may be very simplistic such as ‘When no one is in the room turn of the lamp’ to very complex ones taking into account a mix of multiple conditions like sensor readings, users’ activity, time of day, or conditions from external systems