Docs

# Arquitetura TauriWatch

Objetivo

Fornecer observabilidade interna para apps Tauri com baixa complexidade inicial e caminho de evolucao para SaaS.

Componentes

1. SDK Rust (crates/tauri-watch-sdk)

  • Inicializacao com app_id, api_key, endpoint, environment, release_version
  • Captura manual de logs/erros
  • Hook automatico de panic

2. SDK JS (packages/js-sdk)

  • Captura de erros globais (error, unhandledrejection)
  • Funcoes manuais de log e erro
  • Session replay visual completo (rrweb-like, com DOM diff e timeline)

3. API (services/api)

  • Ingestao autenticada por API key
  • Persistencia de eventos
  • Persistencia de session replays
  • Consultas com filtros
  • Estatisticas para dashboard

4. Banco (PostgreSQL)

  • Tabelas para apps, api keys, eventos, grupos de erro e session replays

5. Dashboard (apps/dashboard)

  • Overview
  • Listagem filtravel de eventos
  • Detalhe de evento
  • Cadastro/listagem de apps
  • Replays (lista e player temporal)

Decisoes de design

  • Single-tenant no MVP com modelo de dados preparado para multi-tenant
  • JSONB para metadata e payloads por flexibilidade
  • Fingerprint SHA-256 para agrupamento simples de erros
  • API key armazenada com hash Argon2id + prefixo para lookup eficiente

Evolucao para SaaS

  • Incluir tenant_id em apps, eventos, releases e sessions
  • Separar ingestao sincrona de processamento assincrono
  • Rate limits por app/plano
  • Armazenamento de minidumps em bucket S3-compatible
  • RBAC e autenticao forte no dashboard
  • Melhorias futuras: compressao, sampling adaptativo e redacao avancada para replay