While I have been playing around with restarting my router to test reconnections I’ve noticed that the order cannot be predicted (of course) for all of the clients reconnecting to the router. Which means that when a client reconnects it may need to wait for all services to reconnect to the router before continuing to do whatever it was doing. A simple sleep at startup after connect may not be sufficient, because each of the services that connect may have different ‘backoff’ reconnect intervals.
How do I handle this? Retry all operations X times before failing?
Maybe have a service that provides a ‘quorum’ status, and it watches all other services to see if we have a viable router yet?