ArquiteturaComposable CommerceVTEXPatternMigration

Do Monolito ao Composable: O Padrão Strangler Fig na Prática

Por que migrações Big Bang falham e como utilizar o padrão Strangler Fig para modernizar seu e-commerce legado sem parar a operação.

Diego Cione

Solution Architect

O Mito do “Rewrite”

Todo CTO já viveu esse pesadelo: o sistema legado está lento, o time de engenharia reclama da dívida técnica e a solução proposta é: “Vamos parar tudo por 6 meses e reescrever do zero em Next.js/Go/Rust.”

Spoiler: Nunca são 6 meses. E quando (se) termina, o negócio já mudou e o novo sistema já nasce legado.

Em arquitetura de e-commerce enterprise, evolução ganha de revolução. É aqui que entra o padrão Strangler Fig (Figueira Estranguladora).

O que é o Strangler Fig Pattern?

Cunhado por Martin Fowler, a analogia vem da natureza: uma figueira que cresce ao redor de uma árvore hospedeira, gradualmente substituindo-a até que a árvore original morra e reste apenas a nova estrutura.

No e-commerce, isso significa criar uma nova aplicação (Headless/Composable) ao redor do monolito legado, interceptando rotas específicas e migrando funcionalidade por funcionalidade.

A Arquitetura da Migração

Para executar isso sem downtime, precisamos de uma peça chave: A Camada de Roteamento (Edge / Reverse Proxy).

Diagrama Lógico

graph TD
    User[Usuário / Browser] --> Edge[Edge Router / CDN]
    Edge -- Rota: /checkout --> Legacy[Legado Monolito]
    Edge -- Rota: /minha-conta --> Legacy
    Edge -- Rota: /p/* (Produto) --> NewApp[Nova App Headless (Next.js)]
    Edge -- Rota: /c/* (Categoria) --> NewApp
    
    NewApp --> CMS[Headless CMS]
    NewApp --> Search[Search API]
    NewApp --> CheckoutAPI[Checkout API]

Passo a Passo na Vida Real

Vamos imaginar um cenário comum: Migrar um e-commerce legado (VTEX CMS Legado ou outra plataforma monolítica) para uma arquitetura Headless (FastStore/React).

Fase 1: A Fachada

Não mexa no código ainda. Coloque um CDN ou Edge Function (Cloudflare Workers, AWS CloudFront Function ou Azion) na frente do domínio. Inicialmente, ele aponta 100% do tráfego para o Legado. Downtime: Zero.

Fase 2: O Primeiro “Estrangulamento” (PDP)

A Página de Produto (PDP) geralmente é onde precisamos de mais performance e SEO.

  1. Desenvolvemos a nova PDP em React/Next.js.
  2. No Edge, criamos uma regra: Se URL começa com /p/ -> Envia para Vercel/AWS (Novo Front). Todo o resto -> Envia para Legado.

O usuário navega na Home (Legada), clica num banner e cai na PDP (Nova). A experiência é transparente.

Fase 3: O Desafio da Autenticação (Session Sharing)

Aqui é onde a maioria dos projetos trava. Como manter o usuário logado quando ele pula do Legado para o Novo Front?

A Solução: Compartilhamento de Cookies no mesmo domínio raiz. O Legado deve setar o cookie de autenticação (ex: VtexIdclientAutCookie) no domínio .meusite.com. A nova aplicação lê esse cookie e valida contra a API de Identity.

War Story: Já vi projetos atrasarem meses porque o time tentou sincronizar sessões via LocalStorage ou tokens complexos no URL. Mantenha simples: Cookies HTTPOnly no domínio raiz.

Fase 4: O Fim do Monolito

Gradualmente, migramos a Home, depois a Busca, depois o Minha Conta. Quando o Legado sobrar apenas com APIs de backend (sem front), ele deixou de ser um monolito e virou um serviço.

Conclusão

Não tente engolir o elefante de uma vez. O risco operacional de uma migração Big Bang é inaceitável para operações que faturam milhões. Use o Strangler Fig para entregar valor (ex: uma PDP mais rápida) na terceira semana de projeto, não no nono mês.

Gostou da análise?

Toda semana eu envio um Deep Dive técnico como este. Sem spam, apenas arquitetura.