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

  1. Passe o cursor sobre o elemento de origem
  2. Clique e arraste a partir do ponto de conexão (pequeno círculo)
  3. Solte sobre o elemento de destino
  4. Um relacionamento é criado automaticamente

Menu de Contexto

  1. Clique com o botão direito no elemento de origem
  2. Selecione "Criar Relacionamento"
  3. 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