2й вариант однозначно.
Для swarm режима есть опции (точно не вспомню название) которая позволяет обновлять сервисы не все разом, а частями (например репликаций 5, то можно обновлять по 2). Плюс есть вроде тайм-аут для этого дела. Посмотрите что-то из докладов Аруна Гупта про swarm, очень хорошо рассказывает.
Также в пользу 2ого варианта, простота приложения. Не надо городить счётчики и прочее. Единственное, если в сервисе есть какое-то состояние, можно делать 1 попытку реконнекта и потом падать.
Плюсом этого подхода будет наглядность при деградации какого-то сервиса. Условно, упала база упадут и все сервисы с ней работающие и это будет заметно. А если реконнект внутри сервиса, то это уже не будет наглядно и надо будет дебажить и лезть в логи.