Um dos argumentos comuns para o uso de microsserviços é a melhor escalabilidade. Mas me pergunto se esse argumento é realmente válido.
Digamos que tínhamos um aplicativo composto por 10 microsserviços, sendo que nove deles tinham cada uma duas instâncias (para redundância) e uma delas com quatro instâncias para lidar com a carga (escalabilidade). O argumento pró-microsserviço é que você pode escalar esse miroserviço independentemente dos outros serviços.
No entanto, digamos que todos os 10 microsserviços eram módulos em um único monólito e que várias instâncias (por exemplo, 22 como a soma acima) foram implantadas. O sistema deve ser capaz de lidar com a carga da parte crítica, porque há instâncias suficientes para isso. Se as instâncias não contiverem lógica do programa, a única desvantagem seria que o binário e a quantidade de RAM necessária seriam um pouco maiores. Mas, novamente, a diferença não deve ser muito grande na maioria dos casos - pelo menos não em comparação com o restante da pilha (pense no Spring Boot). A vantagem de um monlito em escala seria um sistema mais simples sem (a maioria das) falácias de um sistema distribuído.
Estou esquecendo de algo?