Ни разу не писал на Go, но могу задать умный вопрос насчёт архитектуры. =)
Как только ответ от сервера приходит 200 - снова все продолжает работать.
То есть приложение должно продолжать работать, как минимум в плане отправки запросов к серверу! Иначе как оно узнает, что можно работать дальше?
Далее, если я правильно понимаю, что ты в цикле крутишь примерно следующий псевдокод?
while (true) {
data = query_server();
result = process_data(data);
send_result(result);
}
Тогда почему не заставить query_server() сообщать об успешности запроса так или иначе?
А далее, если запрос был успешен, выполнять следующие два шага.