Em uma empresa anterior, o chefe de engenharia e os principais engenheiros decidiram dividir nosso aplicativo Ruby on Rails em uma malha de microsserviços Go. Eles criaram documentos de design e diagramas de arquitetura muito detalhados. Eles fizeram de tudo e usaram Kubernetes, gRPC, modelos de serviço, toda a coisa. Toda a liderança sênior de engenharia veio da Amazon, onde eles estavam acostumados com cada equipe possuindo um serviço distinto. Eles tentaram aplicar esse modelo diretamente. Mas nossos problemas eram com a propriedade do código e a modelagem de domínio ruim. Todo o aplicativo poderia ter sido executado em apenas algumas instâncias do EC2. Qual foi o resultado? Cinco anos depois, 70% do aplicativo ainda está rodando no monólito Ruby on Rails. Nunca concluiu a migração. Mas agora eles têm que manter dois sistemas. Nenhuma das lideranças originais trabalha mais lá.