Relacionamentos
Relacionamentos mostram como os elementos de arquitetura se comunicam, dependem ou interagem entre si. Eles são uma parte crucial da documentação de arquitetura.
Criando Relacionamentos
Arrastar e Soltar
- Passe o cursor sobre o elemento de origem
- Clique e arraste a partir do ponto de conexão (pequeno círculo)
- Solte sobre o elemento de destino
- Um relacionamento é criado automaticamente
Menu de Contexto
- Clique com o botão direito no elemento de origem
- Selecione "Criar Relacionamento"
- Clique no elemento de destino
Propriedades do Relacionamento
Rótulo
O rótulo descreve o que o relacionamento representa:
- "Envia pedidos para"
- "Lê dados de"
- "Autentica usando"
- "Implanta em"
Boas práticas:
- Use voz ativa
- Seja específico sobre o que flui
- Mantenha conciso
Tecnologia
Opcionalmente, especifique a tecnologia ou protocolo:
- "REST/HTTPS"
- "gRPC"
- "AMQP"
- "SQL/TCP"
- "WebSocket"
Direção
Relacionamentos têm uma direção mostrada pela seta:
- Unidirecional: Comunicação em um sentido (mais comum)
- Bidirecional: Comunicação em dois sentidos
Estilizando Relacionamentos
Estilo da Linha
- Sólida: Dependência direta ou comunicação
- Tracejada: Comunicação opcional ou assíncrona
Cor
Use cores para categorizar relacionamentos:
- Azul para fluxo de dados
- Verde para caminhos de sucesso
- Vermelho para tratamento de erros
- Cinza para opcional
Curvado vs Reto
- Linhas curvas: Melhor para diagramas complexos, evita sobreposições
- Linhas retas: Mais limpo para diagramas simples
Padrões Comuns
Requisição-Resposta
Web App --"Faz chamadas API [REST/HTTPS]"--> Servidor API
Orientado a Eventos
Order Service --"Publica eventos [AMQP]"--> Fila de Mensagens
Notification Service <--"Assina eventos [AMQP]"-- Fila de Mensagens
Acesso a Banco de Dados
Servidor API --"Lê/escreve dados [SQL/TCP]"--> Banco de Dados
API Externa
Payment Service --"Processa pagamentos [REST/HTTPS]"--> Stripe API
Relacionamentos Entre Níveis
Relacionamentos podem cruzar diferentes containers ao visualizar no nível de Componente:
- Componentes podem se conectar a containers em outras partes do sistema
- Isso ajuda a mostrar o panorama completo sem sair da visualização atual
Dicas
Não Conecte em Excesso
Nem todo relacionamento possível precisa ser mostrado. Foque em:
- Fluxos de dados principais
- Dependências importantes
- Conexões não óbvias
Agrupe Relacionamentos Relacionados
Se múltiplos elementos se comunicam da mesma forma, considere:
- Usar um intermediário (API Gateway, Fila de Mensagens)
- Agrupar com overlays
Mantenha Rótulos Legíveis
- Posicione rótulos para evitar sobreposição
- Use rótulos mais curtos para diagramas mais limpos
- Adicione detalhes nas descrições dos elementos em vez disso