# 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_idem 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