Guia de Sintaxe e Layout do Diagrama de Arquitetura Mermaid.js

Um diagrama de arquitetura fornece um plano estruturado usado por arquitetos de sistemas e equipes DevOps para visualizar configurações de infraestrutura, microserviços em nuvem e configurações de layout estrutural. Construído sobre o arquitetura-betamotor, esta ferramenta baseada em texto substitui utilitários de arrastar manual por agrupamentos automáticos de grupos de serviços estruturais, clusters de banco de dados, gateways e caminhos de borda em layouts de sistema limpos e previsíveis.

Estrutura Básica de Sintaxe

Todo diagrama começa com o arquitetura-betacabeçalho de declaração. Você preenche a tela definindo elementos individuais de nó usando a serviçopalavra-chave, e mapeia trilhas de conexão especificando portas de coordenadas direcionais exatas (Top, Bottom, Left, Right) separadas por dois pontos e traços duplos.

arquitetura-beta
  serviço gateway(internet)[Rótulo do Gateway]
  serviço servidor(servidor)[Servidor de Aplicação]
  
  gateway:B -- T:server

Referência de Sintaxe

A tabela abaixo detalha os principais componentes de dados, palavras-chave de formatação e atributos de conectores usados para construir um mapa de espaço de trabalho de arquitetura no Mermaid.js.

Componente de Sintaxe Requisito de Tipo Descrição e Regras de Uso
Declaração Identificador de Palavra-Chave Inicializa a tela do espaço de trabalho de mapeamento de infraestrutura. Deve usar exatamente o arquitetura-beta bloco.
Nó de Serviço Palavra-chave + Bloco de Identidade Declara uma entidade arquitetônica. Usa a sintaxe: serviço id(ícone)[Rótulo de Exibição].
Envoltório de Grupo Palavra-chave de Container Agrupa serviços relacionados dentro de um container visual. Usa a sintaxe: grupo id(ícone)[Rótulo do Grupo].
Palavra-chave Em Modificador de Atribuição Atribui explicitamente um nó de serviço para residir dentro de um envoltório de grupo declarado especificamente: serviço id(ícone)[Rótulo] em groupId.
Nó de Junção Identificador de Palavra-chave Estabelece um ponto central de alinhamento estrutural usado para rotear com precisão caminhos de ligação complexos e multidirecionais: junção id.
Arestas de Conexão Operadores de Direção de Porta Configura caminhos de rastreamento direcional prendendo a ligação a lados específicos do nó (T, B, L, R): fonte:lado -- lado:alvo. Suporta pontas de seta direcionais (-->).

Agrupamento Avançado e Roteamento de Arestas de Porta

Para controlar exatamente como os links viajam entre os elementos sem parecer bagunçado, o motor de arquitetura exige vinculações de portas explícitas. Nós relacionados podem ser organizados dentro de grupos estruturais para esclarecer os limites do sistema.

1. Regras Exatas de Vinculação de Portas

Você define onde uma linha de conexão sai e entra em um componente acrescentando dois pontos e uma bandeira de direção de aresta (“T, B, L, R) aos identificadores de nó respectivos:

  • db:R -- L:server : A linha sai pela **Direita** do banco de dados e entra pela **Esquerda** do servidor como uma linha horizontal reta.
  • db:T -- L:server : A linha sai pela **Parte Superior** do banco de dados e entra pela **Esquerda** do servidor, dobrando automaticamente em um ângulo de cotovelo limpo de 90°.
  • src:B --> T:proc : A linha sai pela **Parte Inferior** do nó de origem e segue para baixo até a **Parte Superior** do processador com uma ponta de seta direcional.

2. Estruturando Sistemas com Grupos

Para declarar um grupo visual (como uma nuvem privada virtual ou cluster de banco de dados), use a palavra-chave group palavra-chave e atribua nós a ele por meio do modificador in modificador:

architecture-beta
  group cloudNetwork(cloud)[Nuvem Privada]
    service auth(server)[Nó de Autenticação] in cloudNetwork
    service api(server)[Pontos Finais da API] in cloudNetwork


Alinhando Elementos Irmãos (v11.16.0+)

Quando múltiplos serviços distintos compartilham caminhos idênticos de roteamento de arestas (por exemplo, três fontes de dados desconectadas transmitindo para um único trabalhador de mensagens), o algoritmo de layout às vezes pode agrupá-los. O align row e alinhar colunadiretivas forçam o motor a distribuir esses elementos irmãos de forma uniforme ao longo de uma linha de eixo específica.

arquitetura-beta
  serviço src1(server)[Fonte 1]
  serviço src2(server)[Fonte 2]
  serviço proc(server)[Hub de Processamento]

  src1:B --> T:proc
  src2:B --> T:proc

  alinhar linha src1 src2


Plano Prático do Mundo Real: Plano do Cluster de Microserviços

Este plano demonstra uma arquitetura de nuvem altamente resiliente e de nível corporativo. Ao centralizar o motor principal da API e ramificar autenticação e tarefas assíncronas horizontalmente para os lados, o layout utiliza princípios de design simétrico para evitar linhas sobrepostas. Todo o fluxo de dados move-se de forma previsível da porta de entrada pública até uma camada de armazenamento de dados bem alinhada, utilizando dual alinhar linhadiretivas para fixar componentes em trilhas horizontais nítidas e previsíveis.

arquitetura-beta
  título "Arquitetura de Microserviços de Alta Disponibilidade"

  %% Nível de Entrada Externa
  serviço cloudflare(internet)[Cloudflare WAF]
  serviço alb(server)[Balanceador de Carga de Aplicação AWS]

  %% Cluster Principal de Aplicação
  grupo appCluster(cloud)[Microserviços Gerenciados EKS]
    serviço authService(server)[Serviço de Autenticação] no appCluster
    serviço apiService(server)[Motor Principal da API] no appCluster
    serviço workerNode(server)[Trabalhador de Tarefas Assíncronas] no appCluster

  %% Nível de Armazenamento Protegido
  grupo dataCluster(database)[Camada de Dados Protegida]
    serviço redis(disk)[Cluster de Cache Redis] no dataCluster
    serviço postgres(database)[Principal PostgreSQL] no dataCluster

  %% 1. Fluxo Vertical: Entrada de tráfego da porta pública até o núcleo computacional
  cloudflare:B --> T:alb
  alb:B --> T:apiService

  %% 2. Fluxo Horizontal: API principal ramificando-se simetricamente para a esquerda e direita
  apiService:L --> R:authService
  apiService:R --> L:workerNode

  %% 3. Fluxo Base: Trabalhadores da aplicação descendo diretamente para os respectivos slots de dados
  authService:B --> T:redis
  workerNode:B --> T:postgres

  %% Alinhamentos de Eixos de Layout para uma Grade Perfeita
  alinhar linha authService apiService workerNode
  alinhar linha redis postgres


Armadilhas Comuns de Sintaxe e Restrições do Sistema

Ao escrever código de infraestrutura, tenha em mente estas regras específicas de validação de configuração para evitar falhas na análise:

  • Sequência de Colchetes de Rótulo:As strings de texto exibido devem usar colchetes retos [Texto do Rótulo] e seguir os parênteses do ícone diretamente, sem espaços: serviço id(server)[Texto] está correto. Usar aspas dentro dos parênteses quebrará o analisador.
  • Sensibilidade de Caixa das Portas:Os pontos de ancoragem das arestas de conexão devem ser escritos em letras maiúsculas (T, B, L, R). Letras minúsculas (t, b, l, r) não são reconhecidos e causarão falhas na geração de layout.
  • Regra de Declaração Anterior: Todo identificador de nó ou junção usado em uma instrução de caminho de aresta deve ser declarado explicitamente em uma linha separada acima dele. Conectar-se a um nome de nó implícito falhará ao compilar.
  • Limites de Membros de Alinhamento: Quando usar o alinhamento de linha ou alinhamento de coluna diretivas de posicionamento, você deve fornecer pelo menos dois ou mais identificadores de serviço ou junção válidos e previamente declarados na linha de comando.
Scroll to Top