Falar sobre arquitetura de software é uma discussão infinita.
Acredito que não exista arquitetura perfeita que você vá utilizar em todos os seus projetos. Depende muito do contexto, do que vai ser feito, para assim aplicar a que se encaixa melhor.
É muito comum quando iniciamos na área de programação e aprendemos uma única forma de arquitetar o projeto e passamos a aplicar em tudo o que vamos desenvolver, o que pode gerar uma otimização prematura.
Por exemplo, quando temos um sistema pequeno de poucos acessos e utilizamos uma arquitetura em camadas, ou microsserviços, espalhando as informações, obtendo assim um fluxo maior e complexo sem necessidade. Também podemos ter uma aplicação grande de muitos acessos feita em uma arquitetura Monolítica, que por sua vez pode não aguentar o excesso de acessos e busca de dados, neste caso seria melhor utilizar microsserviços, especializando e distribuindo seus serviços.
Outra coisa que é um fato a se levar em conta, podemos chamar de “influência”, quando uma arquitetura é muito utilizada, falada. As pessoas costumam achar super legal e tendem a pensar que ela pode ser aplicada em qualquer projeto.
É importante saber suas funcionalidades, necessidades, peculiaridades e tamanho do software, para escolher a arquitetura que será aplicada no momento. E dessa forma vai te levar a ter ou evitar problemas com o tempo e crescimento do mesmo.
Vale ressaltar que não existe arquitetura “errada”, “certa”, “bala de prata” e sim a que melhor se encaixa nas condições da aplicação que irá ser desenvolvida.