Um serviço ou muitos: quando dividir
Por que monólito não é palavrão
Um sistema é mais fácil de fazer deploy, debugar e mudar entre domínios. A maioria dos projetos divididos cedo recebeu todo o custo da divisão — rede, versões, monitoramento distribuído, consistência — antes de obter qualquer benefício.
Sinais de que é hora
Um lançamento bloqueado porque times esperam uns pelos outros; um componente com necessidades de recursos totalmente diferentes; uma parte que requer um nível de disponibilidade ou regulação separados; uma taxa de mudança muito diferente entre áreas.
O sinal que não basta: 'porque é assim que se constrói hoje'.
Como dividir corretamente
Por uma fronteira de negócio e não por uma camada técnica. Cada serviço guarda seus próprios dados e não chama o banco de dados do outro. Comunicação por um contrato explícito, e eventos em vez de chamadas síncronas onde possível.
Antes de dividir, verifique que as fronteiras funcionam dentro do próprio monólito: módulos bem separados são um ensaio geral barato.
Indo mais fundo
Dividir exige infraestrutura: rastreamento distribuído, monitoramento por serviço, gerenciamento de configuração e um padrão compartilhado para erros e retentativas. Se essa infraestrutura não existe, a divisão não vai resolver um problema de ritmo, mas vai substituí-lo por um problema de operação.