Relaciones
Las relaciones muestran cómo los elementos de arquitectura se comunican, dependen o interactúan entre sí. Son una parte crucial de la documentación de arquitectura.
Creando Relaciones
Arrastrar y Soltar
- Pasa el cursor sobre el elemento origen
- Haz clic y arrastra desde el punto de conexión (pequeño círculo)
- Suelta sobre el elemento destino
- Se crea una relación automáticamente
Menú Contextual
- Haz clic derecho en el elemento origen
- Selecciona "Crear Relación"
- Haz clic en el elemento destino
Propiedades de las Relaciones
Etiqueta
La etiqueta describe lo que la relación representa:
- "Envía pedidos a"
- "Lee datos de"
- "Se autentica usando"
- "Se despliega en"
Mejores prácticas:
- Usa voz activa
- Sé específico sobre lo que fluye
- Mantenlo conciso
Tecnología
Opcionalmente especifica la tecnología o protocolo:
- "REST/HTTPS"
- "gRPC"
- "AMQP"
- "SQL/TCP"
- "WebSocket"
Dirección
Las relaciones tienen una dirección mostrada por la flecha:
- Unidireccional: Comunicación en un solo sentido (más común)
- Bidireccional: Comunicación en ambos sentidos
Estilizando Relaciones
Estilo de Línea
- Sólida: Dependencia directa o comunicación
- Punteada: Comunicación opcional o asíncrona
Color
Usa colores para categorizar relaciones:
- Azul para flujo de datos
- Verde para rutas de éxito
- Rojo para manejo de errores
- Gris para opcional
Curva vs Recta
- Líneas curvas: Mejores para diagramas complejos, evitan superposiciones
- Líneas rectas: Más limpias para diagramas simples
Patrones Comunes
Solicitud-Respuesta
App Web --"Hace llamadas API [REST/HTTPS]"--> Servidor API
Basado en Eventos
Servicio de Pedidos --"Publica eventos [AMQP]"--> Cola de Mensajes
Servicio de Notificaciones <--"Se suscribe a eventos [AMQP]"-- Cola de Mensajes
Acceso a Base de Datos
Servidor API --"Lee/escribe datos [SQL/TCP]"--> Base de Datos
API Externa
Servicio de Pagos --"Procesa pagos [REST/HTTPS]"--> API de Stripe
Relaciones Entre Niveles
Las relaciones pueden abarcar diferentes contenedores al ver a nivel de Componente:
- Los componentes pueden conectarse a contenedores en otras partes del sistema
- Esto ayuda a mostrar la imagen completa sin salir de la vista actual
Consejos
No Sobre-Conectar
No todas las relaciones posibles necesitan mostrarse. Enfócate en:
- Flujos de datos principales
- Dependencias importantes
- Conexiones no obvias
Agrupar Relaciones Relacionadas
Si múltiples elementos se comunican de la misma manera, considera:
- Usar un intermediario (API Gateway, Cola de Mensajes)
- Agrupar con overlays
Mantener Etiquetas Legibles
- Posiciona las etiquetas para evitar superposiciones
- Usa etiquetas más cortas para diagramas más limpios
- Agrega detalles en las descripciones de elementos en su lugar