Первый сервер, с которым нужно связаться, станет «главным» сервером и
делегировать различные задачи обработки данных другому «ведомому»
серверы.
Это определенно не , как я бы это построил.
Я строю это с намерением использовать облачные вычисления (независимо от того, использует ли оно истинные облачные вычисления или нет). У меня будет служба, которая будет принимать запросы и сохранять эти запросы в очереди. Затем у меня будет несколько рабочих приложений, которые будут брать элемент из очереди, отмечать его в процессе и выполнять любые необходимые действия. По завершении элемент очереди обновляется как выполнено.
В этот момент я бы либо уведомил клиента о том, что работа выполнена, либо вы могли бы попросить клиента опросить сервер на предмет чтения состояния очереди.