Arquitectura monolítica

Uma arquitectura monolítica é o modelo unificado tradicional para o design de um programa de software. Monolítico, neste contexto, significa composto tudo em uma só peça. De acordo com o dicionário de Cambridge, o adjetivo monolítico também significa tanto grande demais quanto incapaz de ser alterado.

O software monolítico é projetado para ser auto-contido; os componentes do programa são interconectados e interdependentes ao invés de frouxamente acoplados, como é o caso de programas de software modulares. Em uma arquitetura fortemente acoplada, cada componente e seus componentes associados devem estar presentes para que o código seja executado ou compilado.

Outras vezes, se algum componente do programa precisar ser atualizado, toda a aplicação deve ser reescrita, enquanto que em uma aplicação modular, qualquer módulo separado (como um microserviço) pode ser alterado sem afetar outras partes do programa. As arquiteturas modulares reduzem o risco de que uma alteração feita dentro de um elemento crie alterações imprevistas dentro de outros elementos, porque os módulos são relativamente independentes. Modular programas também se prestam a processos iterativos mais facilmente do que programas monolíticos.

No entanto, há benefícios para arquiteturas monolíticas também. Programas monolíticos normalmente têm melhor rendimento do que as abordagens modulares, como a arquitetura de microserviço (MSA) e podem ser mais fáceis de testar e depurar porque, com menos elementos, há menos variáveis que entram em jogo.