Explica cómo representar componentes, responsabilidades, interfaces y dependencias para comunicar la estructura interna sin bajar al detalle de clases o infraestructura.
Última actualización
Actualizada
Nivel
Aplicación
Un diagrama de componentes explica cómo se divide internamente una aplicación o servicio, qué responsabilidad tiene cada módulo y mediante qué interfaces colaboran.
El nivel de componentes se sitúa entre el contenedor desplegable y las clases concretas. Su propósito es mostrar unidades internas significativas, no cada archivo.
Sin límites internos claros, una aplicación puede convertirse en un bloque donde controllers, servicios, repositorios y workers dependen entre sí sin dirección. El diagrama hace visibles responsabilidades, dependencias y puntos de cambio.
Las dependencias deberían apuntar hacia contratos estables. Si el dominio importa directamente un SDK de pagos o un framework web, el detalle externo invade el núcleo.
Esto no obliga a utilizar una arquitectura específica; obliga a justificar dónde se encuentra el acoplamiento.
Dos componentes pueden ejecutarse dentro del mismo proceso. Separarlos conceptualmente no significa crear microservicios. La extracción remota debe justificarse por ownership, escalado, seguridad o ciclo de vida, no por el dibujo.
Para explicar internamente un contenedor, preparar refactorizaciones, revisar ownership o mostrar cómo se implementa una capacidad. Para el panorama general usa C4 Context o Container; para orden temporal usa Sequence.