Arquitetura de software, uma visão básica.
Através de meus estudos, concluí que a arquitetura de software é baseada em seu contexto primordialmente. Não existe uma arquitetura coringa que seja útil para todos os problemas e que solucione N questões diferentes; tudo se baseia em como utilizá-la. Digamos que eu tenha um MVP e faça o lançamento dele, possuo 5 clientes. Não faz sentido criar uma arquitetura de microserviços, visto que meu negócio não está no momento adequado para tal.
Uma arquitetura deve obedecer às restrições existentes dentro do negócio para que funcione de maneira adequada. Imaginemos que, em 10 anos, meu negócio saia de 5 clientes e esteja com 10.000+ clientes. Neste momento, a arquitetura que antes era um monólito já não atenderá mais ao meu negócio. Então, o custo de planejar uma arquitetura escalável e eficiente compensa, pois possibilitará que meu software atenda a mais clientes futuramente.
Nem sempre devemos construir um software com conceito X ou tecnologia Y; tudo depende do negócio e de sua evolução. O papel fundamental de uma arquitetura de software é ajudar o negócio a crescer e não o contrário. Pense da seguinte forma: da mesma maneira que o ecossistema de desenvolvimento evolui, o negócio também evolui. O papel do arquiteto de software é alinhar esses dois universos de maneira que o negócio prospere, mas que também esteja alinhado com o mercado atual.
Todas as arquiteturas funcionam bem nos contextos em que são utilizadas. Se um software for desenvolvido sem a análise adequada do negócio, será um software falho, pois não estará alinhado ao contexto em que o negócio funciona.
ISSO É APENAS UMA OPNIÂO NÂO SIGA COMO REGRA.
Gostaria de discutir e saber sobre suas experiências e retornos sore o tema.