Em outra resposta , eu não recomendo isso.
A questão principal que posso ver, além do problema de bootstrap que está relacionado, é se um dos serviços no ciclo falhar, então todos eles falharão. É bastante ruim depurar / restaurar o serviço quando um serviço falha porque um de seus serviços upstream falhou. Nesse caso, você pode voltar atrás nas dependências até descobrir qual é a dependência upstream mais próxima que ainda está funcionando. Você pode corrigir essa dependência e, em seguida, repita o processo se o serviço original ainda não estiver funcionando. Nesse caso, você isolou o segundo serviço com falha para ser downstream do que você acabou de corrigir. Continue repetindo até que o serviço original esteja funcionando.
Se você tiver dependências cíclicas, não há como saber qual serviço no ciclo está causando o problema. Se dois ou mais serviços estão tendo problemas, então você está em uma situação de luzes de Natal / série: se dois serviços falharam, mas você não sabe qual, então você não recebe nenhuma informação se "consertar" um realmente ajudou. Somente quando você consertar ambos os serviços em falha, você saberá quais eram. Se o problema for operacional e puder ser resolvido reiniciando o serviço, a coisa mais rápida a ser feita para restaurar o serviço é, provavelmente, reiniciar o ciclo inteiro. Isso evita a necessidade de isolar o problema e trata efetivamente o ciclo como um único serviço, pelo menos de uma perspectiva de gerenciamento de falhas. Se o problema é um defeito de software, então você está em uma posição muito pior porque para corrigir o problema é necessário isolar o defeito, e é isso que as dependências cíclicas dificultam. Obviamente, um bom monitoramento / registro ajuda significativamente com isso. Da mesma forma que obviamente, quanto menor o ciclo, menos grave é esse problema.