Nivel 1 · 20 min
Monolito vs Microservicios
La decisión entre monolito y microservicios es una de las más impactantes en arquitectura de software. Ambos son válidos —la elección correcta depende del tamaño del equipo, la madurez del dominio y los requisitos operacionales.
Trade-offs del Monolito
El monolito es simple de desarrollar, testear y desplegar inicialmente. Todo el código en un proceso: llamadas de función en lugar de red, una sola base de datos, deployment atómico. Las desventajas emergen con el crecimiento: ciclos de build largos, escalado solo es posible replicar todo el servicio, un bug puede tumbar todo, el coupling escondido dificulta entender impactos de cambios.
Trade-offs de Microservicios
Los microservicios permiten despliegue independiente, escalado selectivo y equipos autónomos. Pero introducen complejidad operacional masiva: service discovery, distributed tracing, eventual consistency, latencia de red en cada llamada, y la dificultad de debugging distribuido. La regla de oro: empezás con monolito, dividís cuando el dolor es real.
Strangler Fig Pattern
El patrón Strangler Fig permite migrar de monolito a microservicios incrementalmente. Un API Gateway enruta requests al monolito o a nuevos microservicios. Se extrae funcionalidad de a poco, mientras el monolito sigue funcionando. El nombre viene de la higuera estranguladora que crece alrededor del árbol huésped hasta reemplazarlo.
Code example
// Strangler Fig: API Gateway decide dónde enrutar
// nginx.conf o API Gateway
location /api/orders {
// Ruta al nuevo microservicio de órdenes
proxy_pass http://order-service:8080;
}
location /api/users {
// Todavía en el monolito mientras se extrae
proxy_pass http://monolith:3000;
}
location /api/legacy {
// Todo lo demás todavía en el monolito
proxy_pass http://monolith:3000;
}