Kyrux
Voltar

Fluxo do Sistema

Fluxo de uma requisição

Request
  → Recovery (captura panics)
  → Allowed Hosts (valida o host — production)
  → CSRF (valida token em POST/PUT/PATCH/DELETE)
  → Router (encontra a view)
  → Middleware da view (se houver)
  → View (lógica do desenvolvedor)
    → Service / Model (queries via ORM ou SQL raw)
    → DB / Cache
    → EventBus.Publish()
    → Realtime.Replace() / Append() / Prepend()
  → Render (SSR — renderiza o HTML)
    → Injeta liveScript (WebSocket)
    → Injeta reloadScript (hotreload — apenas em dev)
  → Response

Fluxo de desenvolvimento

Arquivo .go alterado
  → Air detecta a mudança
  → Recompila o projeto
  → Reinicia o servidor

Arquivo .html / .css / .js alterado
  → hotreload detecta via inotify
  → Envia evento via SSE (/__kyrux_reload__)
  → Browser recarrega automaticamente

Fluxo de Realtime

Usuário A faz POST /posts/criar/
  → View salva no banco
  → render.Partial() renderiza "partials/lista.html"
  → fw.Realtime.Replace("lista-posts", html)
    → JSON enviado via WebSocket para todos os clientes conectados
    → Browser de cada cliente atualiza [kyrux-target="lista-posts"]
  → DOM atualizado sem reload e sem JS manual