🏛️ Cap 08: Arquitetura como Código e Modelo C4 - Exemplos Práticos
Demonstrações práticas de diagramas de arquitetura de software utilizando o Modelo C4 integrado nativamente ao Markdown.
📄 Exemplo 1: Diagrama de Contexto de Sistema (C4 Context)
```mermaid
C4Context
title Diagrama de Contexto: Plataforma de E-commerce Corporativo
Person(cliente, "Cliente Final", "Usuário que realiza compras pelo site ou app")
Person(admin, "Administrador", "Gerencia catálogo, pedidos e relatórios")
System(ecommerce, "Plataforma E-commerce", "Permite navegação em produtos, carrinho e checkout")
System_Ext(pagamento, "Gateway de Pagamento", "Processa transações de cartão e Pix via API")
System_Ext(transportadora, "API dos Correios / Transportadoras", "Calcula frete e rastreio")
Rel(cliente, ecommerce, "Navega e compra produtos", "HTTPS / Navegador")
Rel(admin, ecommerce, "Gerencia produtos e promoções", "HTTPS / Painel Admin")
Rel(ecommerce, pagamento, "Envia ordens de pagamento", "JSON / REST")
Rel(ecommerce, transportadora, "Consulta tabelas de frete", "JSON / SOAP")
```
Diagrama Renderizado Diretamente:
C4Context
title Diagrama de Contexto: Plataforma de E-commerce Corporativo
Person(cliente, "Cliente Final", "Usuário que realiza compras pelo site ou app")
Person(admin, "Administrador", "Gerencia catálogo, pedidos e relatórios")
System(ecommerce, "Plataforma E-commerce", "Permite navegação em produtos, carrinho e checkout")
System_Ext(pagamento, "Gateway de Pagamento", "Processa transações de cartão e Pix via API")
System_Ext(transportadora, "API dos Correios / Transportadoras", "Calcula frete e rastreio")
Rel(cliente, ecommerce, "Navega e compra produtos", "HTTPS / Navegador")
Rel(admin, ecommerce, "Gerencia produtos e promoções", "HTTPS / Painel Admin")
Rel(ecommerce, pagamento, "Envia ordens de pagamento", "JSON / REST")
Rel(ecommerce, transportadora, "Consulta tabelas de frete", "JSON / SOAP")
📄 Exemplo 2: Diagrama de Containers (C4 Container)
C4Container
title Diagrama de Containers: Microsserviços e Persistência
Container(web, "Web Frontend", "React, Next.js", "Interface web pública responsiva")
Container(mobile, "Aplicativo Móvel", "Flutter", "App para Android e iOS")
Container(gateway, "API Gateway", "Kong / Envoy", "Reverse proxy, rate-limiting e TLS")
Container(auth_service, "Serviço de Autenticação", "Go / Gin", "Gera tokens JWT e gerencia sessões")
Container(catalog_service, "Serviço de Catálogo", "Node.js / Express", "Busca rápida e filtragem de itens")
ContainerDb(db_rel, "Banco Relacional", "PostgreSQL", "Guarda dados de usuários e transações")
ContainerDb(db_cache, "Cache de Alta Velocidade", "Redis", "Cache de sessões e queries quentes")
Rel(web, gateway, "Chamadas de API", "JSON/HTTPS")
Rel(mobile, gateway, "Chamadas de API", "JSON/HTTPS")
Rel(gateway, auth_service, "Roteia /auth", "gRPC")
Rel(gateway, catalog_service, "Roteia /produtos", "HTTP/REST")
Rel(auth_service, db_rel, "Lê e grava", "TCP")
Rel(catalog_service, db_cache, "Lê do cache", "TCP")