Ir para o conteúdo principal
ArchPrompts
Voltar ao blog
Caderno técnico / Nota de campo

Monólito, microsserviço ou modular: 3 topologias, 3 diagramas, uma decisão

A escolha entre monólito, microsserviços e monólito modular não é sobre qual é "melhor" — é sobre onde você quer pagar o custo de complexidade: no código ou na rede.

A
ArchPrompts
3 min de leitura
Monólito, microsserviço ou modular: 3 topologias, 3 diagramas, uma decisão
AP / Prancha visual 01
Leitura principal

Toda discussão sobre "monólito vs microsserviços" comece do jeito errado quando trata as duas opções como os únicos pontos do mapa. Existe uma terceira topologia no meio do caminho, e ela resolve o problema que motiva boa parte das migrações precipitadas pra microsserviços. A consequência de ignorá-la: times pequenos pagando o custo operacional de uma arquitetura distribuída sem o volume de time ou de tráfego que justificaria esse custo.

Monólito clássico

Diagrama do monólito clássico: uma única aplicação com módulos de pedidos, pagamentos e usuários todos compartilhando o mesmo processo e o mesmo banco de dados.
Diagrama do monólito clássico: uma única aplicação com módulos de pedidos, pagamentos e usuários todos compartilhando o mesmo processo e o mesmo banco de dados.

Tudo roda num processo só, compartilhando o mesmo banco de dados. Vantagem: deploy simples, debug direto (uma stack trace, um lugar só pra olhar), transação local de verdade sem precisar coordenar múltiplos serviços. Custo: qualquer mudança exige rebuild e redeploy do sistema inteiro, e módulos que deveriam ser independentes acabam se acoplando por conveniência — afinal, tudo está a uma chamada de função de distância.

Microsserviços

Diagrama de microsserviços: serviços de pedidos, pagamentos e usuários rodando isolados, cada um com seu próprio banco, se comunicando por chamadas de rede.
Diagrama de microsserviços: serviços de pedidos, pagamentos e usuários rodando isolados, cada um com seu próprio banco, se comunicando por chamadas de rede.

Cada módulo vira um serviço independente, com seu próprio banco de dados, implantado e escalado separadamente. Vantagem: times conseguem trabalhar e implantar em paralelo sem pisar no trabalho um do outro; cada serviço escala de acordo com sua própria demanda. Custo: toda chamada que antes era função virou chamada de rede — com toda a latência, falha parcial e complexidade de consistência que isso carrega. Esse custo é real e permanente, não desaparece com boa engenharia, só é gerenciado por ela.

Monólito modular

Diagrama do monólito modular: mesmo processo e mesmo banco de dados que o monólito clássico, mas módulos de pedidos, pagamentos e usuários com fronteiras internas explícitas, sem chamada direta entre eles por fora de uma interface definida.
Diagrama do monólito modular: mesmo processo e mesmo banco de dados que o monólito clássico, mas módulos de pedidos, pagamentos e usuários com fronteiras internas explícitas, sem chamada direta entre eles por fora de uma interface definida.

Mesmo processo, mesmo banco — mas com fronteiras internas explícitas entre módulos, reforçadas por convenção de código ou por ferramenta de lint arquitetural, não só por rede. Na prática, isso significa que um módulo só fala com o outro através de uma interface definida, nunca acessando direto a tabela ou a classe interna de outro módulo.

É, em outras palavras, o meio-termo: qualquer módulo que realmente precisar de deploy e escala independentes no futuro já está com fronteira clara o bastante pra virar um serviço separado sem reescrever o sistema inteiro do zero. O custo de acoplamento acidental do monólito clássico cai, sem pagar ainda o custo de rede dos microsserviços.

Como decidir, na prática

  • Time pequeno, poucos módulos com ciclo de vida parecido: monólito clássico resolve, e migrar cedo demais pra microsserviços só adiciona operação sem resolver problema real
  • Módulos com necessidade clara de escalar ou implantar de forma independente, mas ainda sem certeza de onde estão as fronteiras: monólito modular deixa a decisão de separar em serviço pra quando a fronteira já estiver validada em produção
  • Múltiplos times, ciclos de deploy desacoplados e volume que justifica a complexidade operacional extra: microsserviços resolve um problema que já existe, em vez de um problema hipotético

Nenhuma das três é a escolha "madura" ou a escolha "legada" — são três formas de pagar o mesmo custo de complexidade, em momentos e lugares diferentes do sistema. A pergunta certa nunca é qual topologia é melhor; é qual delas seu time e sua base de usuários atual realmente sustentam.

Do conceito à execução

Ferramentas práticas para levar as decisões desta nota ao seu próximo projeto.

02 / selecionados
Diagrama do ataque CVE-2026-53359: VM convidada maliciosa explora bug de emulação MMIO no KVM para escapar ao Ring 0 do host e acessar memória de outras VMs.
Segurança
01 / 03

Defesa em Profundidade Contra Guest Escape em Ambientes Virtuais Multi-Tenant

por João Gabriel

gpt-4ClaudeGemini+2
(0)
0 vendas
R$ 23,94
Fluxo de Decisão do ADR — etapas desde o gatilho até o rollout, conforme o template estruturado do pacote.
ADR
01 / 03

ADR de Adoção de Compilador TypeScript Nativo — Decisão Arquitetural com Scriptc da Vercel

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 49,90