This is probably not the right forum for this question. I am curious to know about your implementation experiences.
So far, working on edge projects that gather data from a variety of equipment, this is what I have noticed. Given an OS, the following data could be of interest:
1. System events e.g. USB cable plugged in, disk full, new file pushed at a file-system location.
2. OEM applications e.g. turn on a motor, dim a light, handle reboots, etc.
3. Custom applications e.g. collect data of some parameters, etc.
4. Communication applications e.g. MQTT pub-sub clients.
With a messaging layer from say, ZeroMQ, one could imagine an ESB that caters to the data of interest as listed above. Thus, a unit of deployment leveraging this ESB could be to subscribe to a reboot message from cloud that invokes a OEM application or raises an appropriate signal to trigger a reboot. Or, an OEM application detects a change in the location through an on-board GPS module and writes to the ESB which is then published by a unit of deployment on to this ESB.
With an ESB, one would expect some 'basic' functions to be there than to be hand coded every time. For example, a custom application logs the ECU data into a message queue and not worry about connection or disconnection from a network. A system event that detects the connection event could raise an event that is subscribed to by an application which in turn reads off of the message queue.
A more glorious version could be a full-blown BPM for devices e.g. waiting for a human task to swap micro-SD cards, etc.
Have you seen such a system in action? Is there merit in such a system (not universal, but, perhaps for a select range of devices)?
Regards,
Nagesh