Arquitectura de Software - Modelo Monolítico

El modelo monolítico es una forma de estructurar aplicaciones donde todos los componentes están agrupados en una única unidad indivisible. Desde la lógica de negocio hasta el acceso a datos y la interfaz de usuario, todo vive en un solo despliegue.

Origen y contexto histórico

Durante años, la forma más natural de desarrollar software fue en forma de un único programa: una aplicación que se compila, se empaqueta y se despliega como un todo. Este enfoque es simple, directo y fue el estándar durante décadas, especialmente en aplicaciones empresariales construidas con Java EE, .NET, PHP y otros entornos populares.

¿Cómo funciona una app monolítica?

  • Una sola base de código.
  • Todos los módulos (controladores, servicios, repositorios) están dentro del mismo proyecto.
  • Una sola base de datos común.
  • Una única unidad de despliegue (WAR, JAR, ZIP, ejecutable, etc).
Modelo Monolítico

Analogía: el restaurante monolítico

Imaginá un restaurante donde una sola persona cocina, cobra, lava los platos, toma pedidos y además administra el negocio. Todo en un solo cuerpo. Funciona bien si hay pocos clientes, pero si el negocio crece, esa persona colapsa.

Ventajas

  • Simplicidad inicial en el desarrollo y despliegue.
  • Fácil de testear de forma integral.
  • Ideal para MVPs o productos en etapa temprana.

Desventajas

  • Dificultad para escalar por módulo (hay que escalar todo junto).
  • Acoplamiento fuerte entre componentes.
  • Despliegues riesgosos: cualquier cambio implica reempaquetar todo.
  • Problemas de organización en equipos grandes.

Ejemplo técnico (Spring Boot)

// En un monolito típico Java con Spring Boot
@RestController
public class ProductoController {

  @Autowired
  private ProductoService productoService;

  @GetMapping("/productos")
  public List listar() {
    return productoService.obtenerTodos();
  }
}

El controlador, el servicio y el acceso a datos viven en el mismo proyecto y se despliegan juntos.

¿Cuándo elegir un monolito?

Aunque hoy está de moda hablar de microservicios, lo cierto es que muchas startups y equipos pequeños deben empezar con monolitos. Son rápidos de desarrollar, fáciles de probar, y permiten enfocarse en el valor de negocio.

Conclusión

El modelo monolítico no está muerto. Al contrario: es el punto de partida natural de muchos sistemas. Lo importante es saber cuándo conviene migrar a otra arquitectura, como los microservicios, sin caer en el hype.