Auto Layout: organiza tus diagramas de arquitectura al instante

Hay una tarea a la que todo equipo de arquitectura se enfrenta eventualmente: el diagrama ha crecido. Lo que empezó como cinco sistemas bien organizados ahora son veintisiete elementos con cuarenta relaciones, la mitad de ellas cruzándose entre si. Alguien añadió un nuevo contenedor la semana pasada y lo soltó en el único espacio libre — la esquina inferior derecha, conectado por una línea que atraviesa tres nodos más. El diagrama todavía contiene información precisa. Solo que es ilegible.

Entonces alguien pasa una tarde arrastrando cajas. La mitad superior queda bien, luego se dan cuenta de que mover la pasarela API rompe la alineación de todo lo que está debajo. Empiezan de nuevo. Una hora después, el diagrama está ligeramente mejor. La siguiente persona que añade un elemento lo pone en el lugar equivocado, y el ciclo se repite.

Este es un problema de disposición, y los problemas de disposición tienen soluciones algorítmicas. Eso es lo que hace Auto Layout.

Un clic, todo se mueve

Auto Layout está en la barra de herramientas del diagrama. Haz clic en el botón, y cada elemento de tu diagrama — sistemas, contenedores, componentes, elementos de código, overlays y grupos compuestos — se mueve a una posición óptima calculada. Las relaciones se desenredan. Las aristas que se cruzan se separan. La jerarquía se vuelve visible.

La animación tarda 400 milisegundos. Los nodos se deslizan desde sus posiciones actuales hasta las nuevas con una curva cubica suavizada. Ves la transformación ocurrir, lo que te ayuda a mantener la orientación espacial — puedes rastrear dónde fue cada elemento en lugar de ver el diagrama saltar repentinamente a una disposición desconocida.

Cómo funciona

Bajo el capo, Auto Layout usa ELK.js, el Eclipse Layout Kernel compilado a JavaScript. ELK es un motor de disposición de grafos que implementa varias décadas de investigación en dibujo automático de grafos. Archyl usa su algoritmo por capas, que está diseñado específicamente para grafos dirigidos — exactamente lo que son los diagramas de arquitectura.

El proceso de disposición se ejecuta en varias fases:

Asignación de capas

ELK primero asigna cada nodo a una capa basándose en su posición en el grafo de dependencias. Los elementos sin relaciones entrantes van a la primera capa. Los elementos que dependen solo de elementos de la primera capa van a la segunda. Y así sucesivamente. Esto crea la jerarquía natural de arriba hacia abajo (o de izquierda a derecha) que hace los diagramas de arquitectura legibles.

Minimización de cruces

Dentro de cada capa, ELK reordena los nodos para minimizar el número de aristas que se cruzan. Usa una técnica llamada barrido de capas — pasando repetidamente por las capas e intercambiando posiciones de nodos hasta que el conteo de cruces se estabiliza. Menos cruces significa diagramas más limpios y legibles.

Colocación de nodos

Una vez que las capas y el orden están determinados, ELK calcula las coordenadas x/y reales. Archyl usa el algoritmo de Brandes-Koepf con alineación equilibrada, que produce disposiciones compactas donde los nodos conectados se alinean verticalmente (u horizontalmente en modo izquierda-derecha) siempre que es posible. Esto crea esas flechas rectas satisfactorias entre elementos relacionados.

Enrutamiento de aristas

ELK enruta las aristas usando trazados spline, y Archyl recalcula el punto de conexión óptimo — arriba, abajo, izquierda o derecha — para cada relación basándose en las posiciones finales de los nodos. Si un sistema está encima de un contenedor, la relación se conecta desde la parte inferior del sistema hasta la parte superior del contenedor. Si están lado a lado, la conexión va de izquierda a derecha.

Soporte de grafos compuestos

Los diagramas de arquitectura no son planos. Los contenedores viven dentro de sistemas. Los componentes viven dentro de contenedores. Los overlays agrupan elementos relacionados. Auto Layout maneja todas estas relaciones de anidamiento.

Cuando un sistema contiene contenedores en el diagrama (mostrado como un nodo de grupo compuesto), ELK lo trata como un padre compuesto con hijos internos. Los hijos se disponen dentro del padre, y el padre se redimensiona para ajustarse. La disposición interna usa el mismo algoritmo que el nivel superior — por capas, con minimización de cruces y alineación — así que la estructura dentro de un grupo de sistema es tan limpia como la estructura fuera de él.

Los overlays funcionan de la misma manera. Si un overlay tiene elementos configurados, esos elementos se tratan como hijos del overlay durante la disposición. El overlay se redimensiona y reposiciona para abarcar a sus miembros con el relleno adecuado. Incluso los overlays "flotantes" — aquellos sin asignaciones explícitas de elementos — se manejan: Auto Layout detecta que nodos están visualmente dentro de los límites del overlay y los mantiene juntos.

Post-procesamiento: alineación y ajuste a la cuadrícula

La salida bruta de ELK es buena pero no perfecta. Archyl aplica dos pasadas de post-procesamiento para refinarla.

Alineación de cadenas encuentra nodos conectados que están casi alineados en el eje perpendicular y los fuerza al mismo centro exacto. Esto usa una estructura Union-Find para agrupar cadenas de nodos conectados, luego calcula el centro mediano y alinea toda la cadena. El resultado: flechas perfectamente rectas entre elementos conectados — no más líneas "casi verticales" que se ven descuidadas.

Resolución de solapamientos detecta nodos que terminaron demasiado cerca después de la alineación y los separa. Se ejecuta iterativamente hasta cinco pasadas, lo que maneja desplazamientos en cascada donde mover un nodo crea un nuevo solapamiento con otro.

Después de ambas pasadas, cada posición se ajusta a una cuadrícula de 20 píxeles que coincide con el fondo de React Flow. Esto significa que los elementos se alinean precisamente con las líneas de la cuadrícula, creando una apariencia pulida e intencional.

Alternar dirección

Auto Layout soporta dos direcciones: De arriba hacia abajo y De izquierda a derecha. Un botón de alternancia junto al botón de Auto Layout te permite cambiar entre ellas.

De arriba hacia abajo es el valor predeterminado y funciona bien para la mayoría de los diagramas de arquitectura — actores externos arriba, sistemas en el medio, infraestructura abajo. De izquierda a derecha funciona mejor para arquitecturas tipo pipeline o vistas orientadas a flujos donde los datos se mueven horizontalmente a través de etapas de procesamiento.

La dirección afecta todo: asignación de capas, minimización de cruces, cadenas de alineación y cálculo de puntos de conexión. Cambia la dirección y el diagrama entero se reorienta.

Qué se persiste

Auto Layout no es solo un efecto visual. Después de que la animación se completa, cada posición calculada se persiste en el servidor. Posiciones de nodos, límites de overlays, dimensiones de grupos compuestos y puntos de conexión de aristas se guardan. Cierra el navegador, vuelve mañana, y la disposición es exactamente cómo Auto Layout la dejó.

Las actualizaciones de puntos de conexión de aristas se agrupan en una sola llamada API para eficiencia. Los redimensionamientos de overlays se persisten individualmente. Las posiciones de nodos se envían en lote. Nada se pierde.

Vista de Arquitectura Global

Auto Layout funciona también en la página de Arquitectura Global — no solo dentro de proyectos individuales. Cuando estás viendo sistemas a través de toda tu organización con docenas de relaciones inter-proyecto, la disposición manual es especialmente dolorosa. Auto Layout lleva la misma organización con un clic a la vista global, con el mismo soporte de grafos compuestos para grupos de sistemas que contienen sus contenedores.

Cuando usarlo

Auto Layout es más útil en tres escenarios:

Después del descubrimiento por IA. Cuando la IA de Archyl analiza un repositorio y genera un modelo C4, las posiciones iniciales se calculan algoritmicamente pero pueden no reflejar la disposición que tu elegirías. Auto Layout te da un punto de partida limpio.

Después de cambios significativos. Has añadido cinco nuevos contenedores, reorganizado relaciones y movido componentes entre sistemas. El diagrama se ha desordenado. Auto Layout recalcula todo desde cero.

Al explorar un nuevo proyecto. Te has unido a un proyecto y quieres entender su arquitectura. El diagrama fue dispuesto según el modelo mental de otra persona. Auto Layout produce una disposición estándar y legible que hace clara la estructura.

Siempre puedes ajustar elementos individuales después de ejecutar Auto Layout. Es un punto de partida, no una restricción.

Para empezar

Auto Layout está disponible ahora en todos los planes y en cada diagrama — a nivel de proyecto y global. Abre cualquier diagrama, haz clic en el botón Auto Layout en la barra de herramientas y observa cómo tu arquitectura se organiza sola.

Tu arquitectura merece ser legible. Auto Layout se asegura de que el diagrama no sea un obstáculo.


Para más información sobre cómo crear diagramas de arquitectura efectivos, consulta nuestra guía del modelo C4. Para entender cómo Auto Layout interactúa con las vistas inter-proyecto, explora Colaboración en Tiempo Real y Arquitectura Global. Para analizar las relaciones que Auto Layout organiza, prueba Impact Radar.