in reply to Synchronous action
Another idea that pops into my head is ... “what about git?” (The version-control package.) Or maybe rsync?
In other words: what if, instead of having one central authority pushing a set of changes to a bunch of remotes, the remotes pull those changes to themselves, “synchronizing” what they have with what they have just now been informed is “the new authority,” but doing so under their own steam. (Even good ol’ rsync already has the goodness to know how to compare files using digital signatures, compress transfers across a network, and so on.) Your program would now orchestrate the process, but would not single-handedly do it.