Microsserviços × Monólito modular
Dois padrões que costumam ser trocados um pelo outro, e o que de fato os separa.
Em uma frase
Os dois defendem fronteiras claras entre módulos — a diferença é se essas fronteiras são físicas ou lógicas. Microsserviços separam por processo e rede (deploy e banco por serviço); o monólito modular separa por módulo dentro de um processo só. O primeiro compra autonomia pagando complexidade distribuída; o segundo mantém a simplicidade de um deploy.
Critério a critério
A fronteira é imposta por quê?
- Microsserviços
- Pela rede: um serviço simplesmente não acessa o banco do outro.
- Monólito modular
- Por disciplina e ferramenta: nada físico impede um import proibido, o lint impede.
Quantos deploys?
- Microsserviços
- Um por serviço, independentes — cada time entrega no seu ritmo.
- Monólito modular
- Um só: o processo inteiro sobe junto, mesmo com muitos módulos.
Como é a comunicação entre módulos?
- Microsserviços
- Pela rede, com as 8 falácias, timeout e retry em cada chamada.
- Monólito modular
- Local, em processo: mantém a transação ACID e o refactor barato.
Como se escala uma parte quente?
- Microsserviços
- Escalando só o serviço sob carga, isolado dos demais.
- Monólito modular
- Subindo réplicas do processo inteiro, não do módulo isolado.
Qual o custo operacional?
- Microsserviços
- Alto: cada serviço é um sistema a operar, com banco, alerta e plantão próprios.
- Monólito modular
- Baixo: um artefato, um banco, uma pilha de operação.
Quando escolher cada um
Microsserviços
Times independentes travam uns aos outros no mesmo deploy, ou partes do sistema precisam mesmo de escala independente, e as fronteiras já estão estáveis.
Ver o conceito completoMonólito modular
Você quer fronteiras claras sem o custo distribuído — quase sempre o ponto de partida certo, e o lugar ideal para descobrir onde as fronteiras realmente ficam.
Ver o conceito completoPor que confundem
Tratar a escolha como monólito 'legado' contra microsserviços 'moderno'. A dicotomia real não é essa: o oposto de microsserviços não é a bola de lama, é o monólito modular, que tem as mesmas fronteiras lógicas sem a rede no meio. Distribuir para resolver acoplamento é apagar incêndio com gasolina — os pedaços acoplados passam a falar por rede. O caminho saudável costuma ser começar modular e extrair um serviço só quando a escala ou a autonomia justificarem.