Arquitetura por Baixo dos Panos

Este diagrama gerado dinamicamente mostra como os microsserviços se comunicam.

sequenceDiagram autonumber actor B as "👤 Navegador" participant G@{ "type": "boundary", "alias": "🛡️ API Gateway" } participant Auth@{ "type": "control", "alias": "🔐 Auth Service" } participant SA@{ "type": "entity", "alias": "📖 Service A (Réplica)" } participant SB@{ "type": "database", "alias": "✍️ Service B (Master)" } rect rgb(30, 41, 59) Note over B,Auth: 1. Autenticação e Autorização (Login) B->>+G: POST /login (Envia Credenciais) G->>+Auth: Verifica email e senha no BD Auth-->>-G: Sucesso! Retorna Token JWT (Identidade) G-->>-B: Salva o Token no LocalStorage end rect rgb(30, 41, 59) Note over B,SA: 2. Leitura Rápida (Qualquer Usuário) B->>+G: GET /public/produtos G->>+SA: Busca dados da Réplica Local SA-->>-G: Retorna Lista de Produtos (Rápido) G-->>-B: Exibe na tela end rect rgb(30, 41, 59) Note over B,SB: 3. Modificação (Apenas Admin) B->>+G: POST /admin/produtos (Envia JWT) G->>G: O Token é válido? É Admin? G->>+SB: Salva os dados no banco Master SB->>+G: POST /internal/sync (Avisa o Gateway) G->>+SA: Sincroniza! Atualiza a Réplica SA-->>-G: Réplica atualizada G-->>-SB: Gateway confirma sync SB-->>-G: Retorna Sucesso G-->>-B: Exibe sucesso na tela end