El Mito de los Microservicios
Existe un mito peligroso en el mundo de las startups: si quieres escalar, necesitas microservicios.
La lógica parece tener sentido. Netflix usa microservicios. Amazon usa microservicios. Por lo tanto, microservicios = escala. ¿Correcto?
Incorrecto.
Lo que Netflix y Amazon no te cuentan es que empezaron como monolitos. Solo migraron a microservicios cuando su escala (miles de ingenieros, millones de usuarios simultáneos) lo hizo necesario.
Los sistemas distribuidos son exponencialmente más difíciles de construir, debuguear y operar. Una startup con 5 ingenieros tratando de manejar 20 microservicios es una startup quemando runway en infraestructura en lugar de producto.
Enter Shopify
Shopify procesa más del 10% de todo el e-commerce de EE.UU. Miles de millones de dólares en transacciones. Su codebase tiene más de 2.8 millones de líneas de Ruby y 500,000 commits.
Y todo está en un solo repositorio. Una unidad desplegable. Un modular monolith.
¿Qué Es un Modular Monolith?
Un modular monolith es una única codebase cuidadosamente estructurada en límites lógicos—componentes o módulos—cada uno manejando un dominio de negocio específico.
Piénsalo como lo mejor de ambos mundos:
- Simplicidad del monolito: Un repo, un deploy, un equipo para coordinar
- Claridad de los microservicios: Límites claros, ownership de dominio, concerns aislados
La Implementación de Shopify
1. Componentes como Rails Engines
Cada dominio de negocio (Checkout, Payments, Orders, Inventory, Admin) se implementa como un Rails Engine—una mini-aplicación dentro de la aplicación mayor.
2. Packwerk para Enforcement de Límites
Shopify construyó Packwerk, una herramienta open-source que detecta automáticamente
cuando un módulo intenta acceder a otro módulo que no debería.
3. Organización Orientada a Dominio
Código organizado por funcionalidad de negocio (billing, orders, inventory) en lugar de por capa técnica (controllers, models, views).
4. Ownership de Datos
Cada módulo es dueño de sus datos y expone una API pública. Otros módulos no pueden acceder directamente a su base de datos—deben pasar por la API.
Cuándo Elegir Qué
Empieza con Monolito cuando:
- Eres un equipo pequeño (< 20 ingenieros)
- Todavía estás buscando product-market fit
- La velocidad de iteración importa más que la escala
Evoluciona a Modular Monolith cuando:
- Tu monolito se está convirtiendo en "big ball of mud"
- Los equipos se pisan los pies unos a otros
- Quieres beneficios de microservicios sin la complejidad
"Empieza con un modular monolith. Extrae microservicios solo cuando el dolor sea claro y específico."
— Equipo de Ingeniería de Shopify
¿Listo para Construir para Escala?
Agenda una Revisión de Arquitectura gratuita. Analizaremos tu codebase actual y te mostraremos exactamente cómo estructurarla para crecimiento—sin el impuesto de los microservicios.
Obtener Tu Revisión Gratuita →Conclusión
El modular monolith no es un compromiso—es una elección estratégica que algunas de las empresas más exitosas del mundo han hecho.
- Los microservicios no son necesarios para escalar
- Los límites importan más que las unidades de deploy
- Empieza simple, evoluciona deliberadamente