Skip to content

[ HU ] Sincronizacion Hibrida en tiempo real y fallback HTTP #75

@madmti

Description

@madmti

Historia de Usuario

Yo como estudiante que usa múltiples dispositivos quiero que mis ramos, notas y horarios se sincronicen de forma instantánea y transparente entre ellos para poder cambiar de pantalla sin perder datos, sin pantallas de carga molestas y cuidando el consumo de recursos en la nube.

Criterios de Aceptación

  • Sincronización en tiempo real: Dado un usuario con la app abierta en su PC y en su teléfono cuando edita una nota en la PC entonces la app debe enviar un mensaje broadcast vía Supabase Realtime y el teléfono debe actualizar su UI de Svelte 5 de forma reactiva en milisegundos sin bloquear al usuario.
  • Resguardo consolidado (Debounce): Dado un usuario que está realizando múltiples modificaciones seguidas en sus ramos cuando deja de interactuar con la app por 10 segundos entonces el sistema debe consolidar el estado local y realizar una única petición HTTP (UPSERT) a Supabase para guardar el respaldo definitivo en la base de datos.
  • Degradación elegante (Fallback): Dado un dispositivo que intenta conectar con el WebSocket de Supabase cuando el servidor rechaza la conexión por límite de cupo gratuito excedido (o error de red) entonces la app debe activar silenciosamente el driver HTTP clásico para seguir sincronizando mediante eventos tradicionales (como el focus de la pestaña) sin interrumpir el uso local.
  • Interruptor de emergencia (Feature Flag): Dado un administrador que necesita mitigar una sobrecarga en el backend cuando cambia la variable de entorno VITE_DISABLE_REALTIME a true y hace el redeploy en Cloudflare Pages entonces todos los clientes que inicien la app deben omitir el uso de WebSockets e inicializar directamente el flujo de sincronización por HTTP tradicional.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FuncionalidadNueva funcionalidad para el sistema
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions