El Modelo C4 no es solo una técnica de diagramación, sino una herramienta de pensamiento que ayuda a estructurar soluciones de software desde la visión general hasta el detalle, facilitando la comunicación entre equipos técnicos y stakeholders.
Imagina esto: Estás en un ascensor con el CEO de tu empresa. Tienes 30 segundos para explicarle cómo funciona el nuevo sistema que estás construyendo. Sacas una servilleta y un bolígrafo. ¿Qué dibujarías? ¿Una clase de Java Public Void Main? (Demasiado detalle técnico, perderás su atención). ¿Un cilindro que diga "Base de Datos"? (Eso no explica cómo el negocio gana valor). ¿Una nube gigante que diga "Internet"? (Demasiado genérico para tomar decisiones).
La mayoría de los arquitectos fallan aquí. No por falta de conocimiento técnico, sino por falta de claridad. He aprendido que antes de dibujar el diagrama "oficial", necesito estructurar la solución. Para esto, utilizo el Modelo C4 (creado por Simon Brown). No solo como una herramienta de documentación, sino como mi herramienta de análisis y pensamiento.
C4 no es solo un modelo de diagramas
El modelo C4 es una forma simple de visualizar la arquitectura de software en niveles de detalle, desde la visión más general hasta el código. Como si fuera un mapa con zoom, diseñado por Simon Brown.
La analogía que más me ayudó a entenderlo fue esta: Es como usar Google Maps. Primero ves el país. Luego la ciudad. Luego la calle. Luego el edificio. Cada nivel tiene un propósito distinto. El error es intentar explicarlo todo al mismo tiempo.
C4 propone cuatro niveles principales y, lo más importante, define claramente qué tipo de elementos existen en cada uno.
Las abstracciones del Modelo C4
Algo que me cambió completamente la perspectiva fue entender las abstracciones base del modelo.
👤 Person (Persona)
Una persona es cualquier actor que interactúa con el sistema. Puede ser:
- Un cliente
- Un empleado
- Un administrador
- Incluso otro sistema externo
Lo importante es que no forma parte del sistema que estamos modelando. Está fuera. Nos ayuda a entender quién usa el sistema y por qué existe.
🧩 Software System (Sistema de Software)
Es el sistema completo que estamos describiendo. Por ejemplo:
- Plataforma de pagos
- Sistema de onboarding digital
- Motor de riesgos
- Portal de clientes
Aquí no hablamos de clases ni microservicios. Hablamos del sistema como una unidad, su propósito y sus interacciones con el mundo externo. Este nivel es clave para conversar con negocio y stakeholders.
📦 Container (Contenedor)
Este es uno de los conceptos más malinterpretados. Un contenedor en C4 no es necesariamente Docker. Es cualquier unidad ejecutable o desplegable que ejecuta código o almacena datos. Por ejemplo:
- Una API REST
- Una aplicación web
- Una app móvil
- Una base de datos
- Un servicio batch
- Un microservicio
Es el nivel donde la arquitectura empieza a volverse tangible. Aquí ya hablamos de tecnología, responsabilidades y comunicación entre piezas.
🧱 Component (Componente)
Un componente es una agrupación lógica dentro de un contenedor. Representa una parte del sistema con una responsabilidad clara y bien definida. Por ejemplo, dentro de una API podríamos tener:
- Un componente de validación
- Un componente de orquestación
- Un adaptador a un sistema legacy
- Un motor de reglas
No son clases individuales. Son bloques cohesivos que organizan la lógica interna. Este nivel me ayudó mucho a explicar arquitectura a desarrolladores sin entrar aún al código.
💻 Code (Código)
Es el nivel más detallado: clases, interfaces, estructuras reales. No siempre es necesario documentarlo, porque el código ya existe. Pero en sistemas críticos o complejos puede ayudar a alinear criterios de diseño.
Los 4 niveles de zoom
Entender las abstracciones es clave, pero el verdadero poder está en cómo se organizan en niveles:
1️⃣ Nivel Contexto
Muestra el sistema como una caja negra y sus interacciones con personas y otros sistemas. Es perfecto para:
- Presentaciones ejecutivas
- Kick-offs
- Alinear propósito y límites
2️⃣ Nivel Contenedores
Aquí vemos cómo se estructura internamente el sistema: Frontend, Backend, Base de datos, Servicios externos. Este nivel me ayudó a explicar decisiones tecnológicas sin perder claridad.
3️⃣ Nivel Componentes
Profundiza dentro de un contenedor. Es ideal para:
- Equipos técnicos
- Revisión de arquitectura
- Onboarding
Aquí es donde la arquitectura deja de ser abstracta y empieza a ser operativa.
4️⃣ Nivel Código
Solo cuando es necesario. He aprendido que no siempre hay que bajar hasta aquí. Depende del público y del objetivo.
De la Teoría a la Práctica: El Caso "CloudCoffee" ☕
Ahora que conocemos las abstracciones, vamos a aplicarlas. Imagina que somos los arquitectos de "CloudCoffee", una nueva cadena de cafeterías digitales. Vamos a aplicar los niveles de zoom usando las abstracciones que acabamos de definir.
Nivel 1: Contexto (System Context)
La Vista de Negocio. Aquí conectamos a las Personas con el Sistema de Software. Este diagrama responde: ¿Quién usa el sistema y con qué se integra?

Nivel 2: Contenedores (Containers)
La Vista de Tecnología. Abrimos la caja del sistema. ¿Qué Contenedores necesitamos para que CloudCoffee funcione? Este diagrama responde: ¿Qué tecnología usamos y cómo se comunican las piezas desplegables?

Nivel 3: Componentes (Components)
La Vista de Ingeniería. Hacemos Zoom dentro del contenedor "API Backend". ¿Qué Componentes lógicos tiene? Este diagrama responde: ¿Cómo está organizado el código internamente?

Nivel 4: Código (Code)
El Detalle Extremo. Aquí mostraríamos las clases UML (PricingStrategy.java, DiscountRule.java). Consejo: Simon Brown recomienda bajar a este nivel solo para lógicas muy complejas. Si haces esto para todo tu sistema, el diagrama quedará obsoleto en cuanto alguien escriba una nueva línea de código. Úsalo con precaución.

Mi conclusión personal
El Modelo C4 no me enseñó a dibujar mejor. Me enseñó a pensar mejor. Me obligó a:
- Respetar las abstracciones.
- No mezclar niveles.
- Comunicar con intención.
- Y simplificar sin perder rigor.
Hoy lo veo más como una herramienta de pensamiento que como un estándar de diagramación. Y eso, en entornos complejos, marca una diferencia enorme.
La próxima vez que te pidan explicar un sistema, no empieces dibujando. Empieza pensando en qué nivel de zoom necesitas tu audiencia. Porque la arquitectura no es solo sobre tecnología, es sobre comunicación efectiva.

Comments
Please log in or register to join the discussion