How can we share one program on several devices while they will respond to each others?

I’m finishing one flow and I want to run it in three different computer. If my program fail to run at some point in one of my computer, the other computer will take action to this problem. So basically, the three devices are linked and they can act according to both the flow and other computers. Are there some ways this can be worked?

Sure it is possible. Use MQTT or CoIoT to communicate between them. However, certain needed things can be tricky that makes the flow rather advanced. Just popping up in my mind:

The flow that has the task must be able to regularely inform the others that it is working as expected
If it fails, the task has to be taken over by one of the other flows
The failed flow needs to be restarted to be ready to "jump in" next time it is needed

Alternatively, you let all three flows work with the same task in parallel. You have in addition one flow comparing the results from the three. If all produce the same result, you take that. If one result differs, you take the one from the others and you kill/restart the failing flow

This is called high availability. It can be DIYed but is not easy to do it right.

You could achieve this through load balancing/horizontal scaling.

Look into MQTT shared subscriptions.

Depending on your use case and acceptable down-time, you can also do a lot to safeguard a flow running on just one computer

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.