Pular para conteúdo

Arquitetura e comunicação

A aplicação de produção roda em Kubernetes. Os manifests ficam em deploy/kubernetes, com bases reutilizáveis e overlays por ambiente. Docker Compose permanece disponível para desenvolvimento e procedimentos locais; não é o fluxo normal de deploy da produção atual.

flowchart TD
    U[Web, Meta e callbacks WooCommerce] --> E[Entrada pública e Ingress]
    E --> G[flow-gateway]
    G --> W[whatsapp-entrypoint]
    G --> P[Painel e landing]
    G --> F[frontend-entrypoint]
    G --> C[woocommerce-wrapper e callbacks B2C]
    W --> B[Agentes B2B e B2C]
    F --> B
    F --> M[marketing-campaigns]
    B --> A[genai-wrapper]
    B --> C
    C --> WC[WooCommerce da loja]
    A --> IA[OpenAI, Gemini ou Claude]
    A --> V[Weaviate]
    B --> R[Redis]
    F --> D[PostgreSQL]
    C --> S[MinIO]

O diagrama mostra caminhos principais, não todos os acessos a persistência.

Entrada pública

O Ingress direciona o domínio da aplicação para flow-gateway. O gateway distribui rotas entre landing, painel, backend e callbacks. Os bancos e as APIs internas não devem ser expostos apenas para facilitar testes.

Os callbacks da Meta e os callbacks de produtos/pedidos têm destinos específicos. Uma aplicação que permite login ainda pode ter um webhook configurado no domínio antigo; valide cada integração separadamente.

Comunicação interna

Os serviços usam HTTP e DNS do Kubernetes, com nomes como frontend-entrypoint, genai-wrapper e woocommerce-wrapper. Um nome curto é resolvido no namespace do pod. Um endereço explicitamente apontado para outro namespace pode atravessar essa separação se houver rede e autorização disponíveis.

Os contratos compartilhados ficam em contracts/, os clientes comuns em packages/ e os serviços em modules/. Antes de alterar uma interface, verifique consumidores, autenticação e compatibilidade durante o rollout.

Processamento e disponibilidade

O conversation-outcome-worker executa trabalho de consolidação em segundo plano. Outros serviços também podem executar tarefas internas; desligar apenas o worker não garante que todo processamento automático esteja suspenso.

Readiness e liveness têm finalidades distintas. O sucesso do rollout e do /health é uma evidência inicial; concluir onboarding, conversar, buscar produtos e criar pedidos de teste exige validação funcional.

Consulte serviços, dados e configuração e CI/CD.