Estrategia de migración incremental que reemplaza gradualmente un sistema legacy con componentes nuevos, enrutando tráfico progresivamente hasta que el sistema antiguo se puede retirar.
El patrón Strangler Fig (nombrado por la higuera estranguladora) es una estrategia para migrar sistemas legacy de forma incremental. En lugar de un rewrite completo — el temido «big bang» que falla más de lo que funciona — se construyen componentes nuevos que gradualmente reemplazan funcionalidad del sistema antiguo mientras este sigue operando.
Martin Fowler lo describió en 2004 inspirado por las higueras estranguladoras de Australia: semillas que germinan en la copa de un árbol huésped, crecen raíces hacia abajo, y eventualmente envuelven y reemplazan al árbol original.
Los rewrites completos son el cementerio de proyectos de software. El patrón Strangler Fig ofrece una alternativa pragmática:
| Variante | Mecanismo | Cuándo usar |
|---|---|---|
| Strangler Fig (clásico) | Proxy HTTP redirige tráfico gradualmente | Migración de monolito web a microservicios |
| Branch by Abstraction | Abstracción interna en el código | Reemplazar componentes internos sin cambiar la API |
| Parallel Run | Ejecutar ambos sistemas y comparar | Cuando la corrección es crítica (pagos, cálculos) |
| Feature Toggle | Feature flags controlan qué usuarios ven el nuevo sistema | Migración gradual por segmento de usuarios |
Estilo arquitectónico que estructura una aplicación como colección de servicios pequeños, independientes y desplegables, cada uno con su propia lógica de negocio y datos.
Patrón que proporciona un punto de entrada único para múltiples microservicios, manejando routing, autenticación, rate limiting y agregación de respuestas.
Patrón arquitectónico que aísla la lógica de negocio del mundo exterior mediante puertos y adaptadores, facilitando testing y cambio de tecnologías.
Conjunto de prácticas técnicas y culturales que implementan los principios DevOps — desde Infrastructure as Code hasta blameless post-mortems. El «cómo» detrás de la filosofía.