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 completo

Monó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 completo

Por 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.