Relazioni
Le relazioni mostrano come gli elementi architetturali comunicano, dipendono o interagiscono tra loro. Sono una parte cruciale della documentazione architetturale.
Creare Relazioni
Drag and Drop
- Passa il mouse sull'elemento sorgente
- Clicca e trascina dal punto di connessione (cerchietto)
- Rilascia sull'elemento di destinazione
- Una relazione viene creata automaticamente
Menu Contestuale
- Fai clic destro sull'elemento sorgente
- Seleziona "Crea Relazione"
- Clicca sull'elemento di destinazione
Proprietà delle Relazioni
Etichetta
L'etichetta descrive cosa rappresenta la relazione:
- "Invia ordini a"
- "Legge dati da"
- "Si autentica tramite"
- "Effettua il deploy su"
Best practice:
- Usa la forma attiva
- Sii specifico su cosa transita
- Mantieni la concisione
Tecnologia
Specifica opzionalmente la tecnologia o il protocollo:
- "REST/HTTPS"
- "gRPC"
- "AMQP"
- "SQL/TCP"
- "WebSocket"
Direzione
Le relazioni hanno una direzione indicata dalla freccia:
- Unidirezionale: Comunicazione a senso unico (più comune)
- Bidirezionale: Comunicazione bidirezionale
Personalizzazione delle Relazioni
Stile Linea
- Solida: Dipendenza diretta o comunicazione
- Tratteggiata: Comunicazione opzionale o asincrona
Colore
Usa i colori per categorizzare le relazioni:
- Blu per il flusso dati
- Verde per i percorsi di successo
- Rosso per la gestione errori
- Grigio per opzionale
Curva vs Rettilinea
- Linee curve: Migliori per diagrammi complessi, evitano sovrapposizioni
- Linee rette: Più pulite per diagrammi semplici
Pattern Comuni
Richiesta-Risposta
Web App --"Effettua chiamate API [REST/HTTPS]"--> API Server
Event-Driven
Order Service --"Pubblica eventi [AMQP]"--> Message Queue
Notification Service <--"Sottoscrive eventi [AMQP]"-- Message Queue
Accesso al Database
API Server --"Legge/scrive dati [SQL/TCP]"--> Database
API Esterna
Payment Service --"Elabora pagamenti [REST/HTTPS]"--> Stripe API
Relazioni Cross-Livello
Le relazioni possono estendersi attraverso diversi container quando si visualizza a livello di Componente:
- I componenti possono connettersi a container in altre parti del sistema
- Questo aiuta a mostrare il quadro completo senza lasciare la vista corrente
Suggerimenti
Non Sovra-Connettere
Non tutte le relazioni possibili devono essere mostrate. Concentrati su:
- Flussi di dati principali
- Dipendenze importanti
- Connessioni non ovvie
Raggruppa Relazioni Correlate
Se più elementi comunicano nello stesso modo, considera:
- Usare un intermediario (API Gateway, Message Queue)
- Raggruppare con overlay
Mantieni le Etichette Leggibili
- Posiziona le etichette per evitare sovrapposizioni
- Usa etichette più corte per diagrammi più puliti
- Aggiungi dettagli nelle descrizioni degli elementi