𝗠𝗶𝗰𝗿𝗼𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀 𝘃𝘀. 𝗔𝗿𝗾𝘂𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮 𝗠𝗼𝗻𝗼𝗹í𝘁𝗶𝗰𝗮: ¿Qué deberías construir?
Un fundador me pidió una vez que revisara una propuesta de arquitectura.
La agencia propuso once servicios, una cola de mensajes y un service mesh. Esto era para una herramienta de reservas sencilla con cero usuarios.
Eso es una trampa.
Las decisiones de arquitectura determinan tus facturas de hosting, tu velocidad de entrega y tu plan de contratación. Debes conocer el coste antes de entregarle un presupuesto a un desarrollador.
El Monolito Un monolito utiliza una única base de código, un único despliegue y una única base de datos. Es sencillo.
El primer día, no conoces los límites de tu dominio. Si divides los servicios demasiado pronto, perderás tiempo moviendo muros que no deberían existir. Un monolito es más fácil de gestionar cuando tu equipo es pequeño. Llamas a una función en lugar de configurar una API. Cuando ocurre un error a las 2 de la mañana, el fallo apunta al código, no a un fallo de red.
Microservicios Los microservicios resuelven problemas organizativos. Permiten que diferentes equipos entreguen código según sus propios cronogramas. Netflix los utiliza para evitar que un fallo hunda todo el barco.
Sin embargo, pagas el precio cada día. Las llamadas de red añaden latencia. La consistencia de los datos se vuelve difícil. Necesitas herramientas especializadas y un equipo grande para gestionar logs y trazabilidad. Sin la plantilla adecuada, terminas con un monolito distribuido. Esto te da toda la complejidad de una red sin nada de la independencia.
El Monolito Modular Este es el punto medio. Es una sola aplicación con muros firmes entre las diferentes partes del código. El módulo de facturación no puede tocar las entrañas de tus pedidos.
Shopify y GitHub utilizan este enfoque. Obtienes límites claros y evitas el impuesto de red. Cuando una parte de tu aplicación finalmente necesita escalar por sí sola, puedes separarla fácilmente porque los límites ya están definidos.
Cómo decidir:
- Tamaño del equipo: Si tienes tres personas, no puedes gestionar servicios separados y la rotación de guardia necesaria.
- Estabilidad del producto: Si tu producto cambia semanalmente, los límites de tus servicios serán incorrectos el mes que viene.
- Operaciones: ¿Tienes rollbacks automatizados y agregación de logs? Si no es así, los microservicios te causarán problemas.
- Escala: No construyas para un crecimiento hipotético. Construye para el camino concreto que puedes ver.
Si tus respuestas son "todavía no", construye un monolito modular.
No pidas microservicios solo porque la palabra suena moderna. Dile a tu socio qué hace el producto y quién lo mantendrá.
Los productos mueren porque nunca se lanzan. Un monolito limpio es la forma más rápida de llegar a los usuarios. Construye eso primero. Deja que tu tráfico te diga cuándo es el momento de separar las cosas.
Comunidad de aprendizaje opcional: https://t.me/GyaanSetuAi