Por que não reescrever do zero
A reescrita completa é a ideia mais sedutora e uma das mais arriscadas da área. Ela congela o produto por meses, joga fora anos de regra de negócio escondida no código e costuma terminar mais cara que o previsto.
Preferimos trocar as peças com o sistema de pé.
Cortes pequenos, em produção
- Antes de mexer, testes em volta do comportamento atual, mesmo que sejam feios. Sem eles não existe refatoração, só torcida.
- Depois, cortes pequenos: isolar um módulo, tirar uma dependência, separar uma tabela.
- Cada corte vai para produção sozinho e pode ser desfeito.
- Dívida que não atrapalha ninguém fica onde está.
Onde temos mais prática
Go e TypeScript no código, Postgres nos dados. Outras tecnologias entram no diagnóstico sem problema, mas é nessas que a execução é mais firme.
No dia a dia do time
Deploy menos assustador. Uma pessoa nova que consegue contribuir em dias, não em meses. E a possibilidade de dizer sim a uma funcionalidade sem calcular antes o risco de derrubar o checkout.
Se o que mais pesa hoje é lentidão, comece pela página de performance. Se for exposição, segurança.