Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • Context engineering: quando o problema deixa de ser prompt e vira arquitetura
    • Clean Code (2ª edição): o que mudou e o que continua valendo
    • Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha
    • Guia Profissional de Prompting – Domando um ChatGPT Preguiçoso: Como Obter Respostas Completas, Profundas e Confiáveis
    • A Anatomia de um Prompt: Como Falar com a IA Como um Profissional de Tecnologia
    • Conheça os tipos de registros DNS: o guia completo sobre A, AAAA, NS, CNAME, MX, PTR, SOA, TXT, SRV, SPF e muito mais
    • Cache além do básico: por que LRU e TTL precisam andar juntos
    • Quando usar arquitetura modular — e quando não usar
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Arquitetura»Strangler Fig Pattern com API Gateway: migrando sistemas legados de forma segura e evolutiva

    Strangler Fig Pattern com API Gateway: migrando sistemas legados de forma segura e evolutiva

    Jhonathan SoaresBy Jhonathan Soares15 de agosto de 20254 Mins Read Arquitetura
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    A modernização de sistemas legados raramente é um processo “big bang”. Em vez de uma substituição total e imediata, a abordagem mais segura e escalável é migrar aos poucos, mantendo o sistema em funcionamento enquanto partes antigas vão sendo substituídas.
    Um dos padrões mais eficazes para isso é o Strangler Fig Pattern, especialmente quando combinado com um API Gateway para gerenciar o tráfego e orquestrar a transição.

    Se você acompanha o blog, já viu que falamos sobre Arquitetura Evolutiva, Design Modular e Monólitos Modulares.
    Este artigo se conecta diretamente a esses conceitos — porque o Strangler Fig é, na prática, uma das formas mais controladas de aplicar arquitetura evolutiva.


    O que é o Strangler Fig Pattern?

    Inspirado na planta “estranguladora” que cresce em volta de outra árvore até substituí-la completamente, o padrão consiste em envolver um sistema legado com uma camada intermediária, redirecionando chamadas para módulos novos à medida que eles são criados.
    No contexto moderno, essa camada intermediária é quase sempre um API Gateway.

    Quando aplicar

    • Legado complexo que não pode ser reescrito do zero.
    • Sistemas críticos com SLA alto e risco de downtime.
    • Necessidade de migração gradual, por equipes diferentes e em prazos distintos.
    • Desejo de aplicar arquitetura modular sem interromper operações.

    Passo a passo detalhado

    1. Mapeamento de domínio e rotas

    Antes de mexer no código, entenda o sistema.

    • Levante todas as rotas e contratos de API expostos.
    • Classifique endpoints por criticidade e dependências.
    • Identifique pontos de integração com sistemas externos.

    Dica: Use ferramentas como Swagger/OpenAPI generators ou sniffing de tráfego para mapear endpoints quando a documentação for inexistente.

    2. Implementação do API Gateway

    O API Gateway será o único ponto de entrada do tráfego.

    • Configure-o para encaminhar chamadas para o legado sem alterar o comportamento.
    • Adicione métricas, logging estruturado e tracing distribuído desde o início — isso será vital para identificar gargalos e falhas na transição.
    • Ferramentas comuns: Kong, NGINX, AWS API Gateway, Traefik.

    3. Primeira extração

    Escolha um módulo de baixo risco, mas com valor de negócio claro.

    • Reimplemente-o em um novo serviço (ex: microservice ou módulo independente).
    • No API Gateway, crie rota que direcione chamadas desse endpoint para o novo serviço.
    • Mantenha a interface idêntica para evitar impacto nos consumidores.

    4. Execução em paralelo (canary release)

    Para módulos mais críticos:

    • Encaminhe parte do tráfego para o novo serviço e monitore resultados.
    • Compare latência, taxas de erro e logs entre legado e novo módulo.
    • Ferramentas como Istio ou Linkerd podem ajudar em roteamento dinâmico.

    5. Migração incremental

    Repita o processo:

    • Migrar um endpoint ou conjunto de endpoints por vez.
    • Cada migração deve ter rollback rápido configurado.
    • O API Gateway centraliza a lógica de roteamento, isolando consumidores da mudança.

    6. Desativação do legado

    Quando todas as rotas de um módulo estiverem migradas:

    • Desabilite endpoints antigos.
    • Monitore por tentativas de acesso para identificar clientes desatualizados.
    • Planeje o desligamento definitivo apenas quando o tráfego no módulo for zero.

    Benefícios da abordagem

    • Zero downtime: clientes não percebem a transição.
    • Mitigação de risco: rollback rápido e granular.
    • Escalabilidade organizacional: várias equipes podem migrar partes diferentes do sistema em paralelo.
    • Evolução contínua: mantém o alinhamento com princípios de arquitetura evolutiva.

    Exemplos práticos de aplicação

    • Uma fintech migrando seu módulo de cálculo de juros sem alterar a API pública.
    • Um e-commerce substituindo gradualmente seu carrinho de compras por um microservice, mantendo rotas idênticas no Gateway.
    • Uma operadora de telecom modernizando seu sistema de billing por etapas.

    Riscos e armadilhas

    • Gateway como gargalo: sem monitoramento e escalabilidade, o API Gateway pode se tornar o ponto único de falha.
    • Débitos técnicos persistentes: se a migração não tiver cronograma, o legado pode nunca ser eliminado.
    • Complexidade de roteamento: múltiplas regras e exceções podem dificultar manutenção.

    Conexão com arquitetura evolutiva

    O Strangler Fig com API Gateway é, na prática, uma implementação concreta de princípios de arquitetura evolutiva e design modular.
    Ele permite que sistemas sejam transformados de forma contínua, aproveitando a base existente, mas abrindo espaço para novos módulos e tecnologias — exatamente como discutimos nos artigos:

    • Arquitetura Evolutiva: adaptabilidade contínua no desenvolvimento de software
    • Design Modular: o alicerce das arquiteturas evolutivas
    • Monólitos Modulares: abordagem moderna na construção de monólitos
    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    Context engineering: quando o problema deixa de ser prompt e vira arquitetura

    Arquitetura IA 16 de abril de 202611 Mins Read

    Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha

    Arquitetura 4 de fevereiro de 20268 Mins Read

    Cache além do básico: por que LRU e TTL precisam andar juntos

    Arquitetura NoSql 7 de outubro de 20259 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • Context engineering: quando o problema deixa de ser prompt e vira arquitetura
    • Clean Code (2ª edição): o que mudou e o que continua valendo
    • Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha
    • Guia Profissional de Prompting – Domando um ChatGPT Preguiçoso: Como Obter Respostas Completas, Profundas e Confiáveis
    • A Anatomia de um Prompt: Como Falar com a IA Como um Profissional de Tecnologia
    Categorias
    • Arquitetura (31)
      • Microsserviços (3)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (93)
      • NoSql (60)
      • Sql (38)
    • Boas práticas (34)
      • Gestão & Produtividade (4)
      • Metodologias Ágeis (6)
    • Cursos (53)
    • Dicas (108)
    • Front-End (92)
    • IA (7)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Código Simples no Facebook
    Código Simples no Facebook
    • Popular
    • Recente

    1000 livros gratuitos sobre programação!

    12 de fevereiro de 2016

    Google lança versão “invisível” do reCAPTCHA!

    10 de março de 2017

    Mini curso de HTML5 oferecido pela Microsoft

    30 de janeiro de 2014

    O que significa ( !important ) na declaração do CSS ?

    5 de fevereiro de 2014

    Programa para supercompactar arquivos. KGB Archiver.

    6 de fevereiro de 2014

    Context engineering: quando o problema deixa de ser prompt e vira arquitetura

    16 de abril de 2026

    Clean Code (2ª edição): o que mudou e o que continua valendo

    12 de fevereiro de 2026

    Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha

    4 de fevereiro de 2026

    Guia Profissional de Prompting – Domando um ChatGPT Preguiçoso: Como Obter Respostas Completas, Profundas e Confiáveis

    30 de outubro de 2025

    A Anatomia de um Prompt: Como Falar com a IA Como um Profissional de Tecnologia

    30 de outubro de 2025
    Nosso Feed
    • RSS - Posts
    Fique por dentro

    Digite seu endereço de email para assinar este blog e receber notificações de novas publicações por email.

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile