decision • decision • Aceptado
Ver Raw (.md)

ADR 0005: Distribución Híbrida PWA y Desktop con Extensibilidad de Cómputo

Estado

Aceptado

Fecha

2026-09-27

Contexto

Los usuarios del catálogo de DataMesh Bolivia poseen diversos perfiles y necesidades tecnológicas:

  • Ciudadanos y periodistas: Requieren acceso rápido desde teléfonos móviles o navegadores web sin descargar aplicaciones pesadas.
  • Investigadores y Data Engineers: Requieren consultar datasets masivos en sus estaciones de trabajo, validar carpetas de nodos locales antes de publicarlas y realizar cómputo analítico intensivo con baja latencia.

Asimismo, la visión a medio plazo del SDK de DataMesh (datamesh-sdk) contempla compilar el Core Domain a binarios nativos en Go para consumo de alta velocidad multi-lenguaje.

Decisión

1. Soporte PWA de Primer Nivel: Integrar un Service Worker (public/sw.js) con estrategia Stale-While-Revalidate y manifiesto web (manifest.webmanifest), permitiendo instalar el portal en un solo clic desde navegadores móviles o de escritorio.

2. Empaquetado de Escritorio con Electron: Proveer un arnés ligero (electron/main.cjs y electron/preload.cjs) que empaqueta la versión estática de Astro en ejecutables para Linux, Windows y macOS.

3. Ranura de Extensión para Cómputo Local (electron/engine.cjs):

  • Provee un puente IPC que detecta si existe un binario nativo compilado del SDK (Go o Python CLI).
  • Si el binario existe, delega el procesamiento analítico y la validación criptográfica al motor nativo.
  • Si no existe, realiza un fallback transparente a ejecución analítica en memoria/JavaScript.

Consecuencias

  • Cobertura universal de usuarios: desde navegación móvil offline hasta estaciones de análisis de datos.
  • Arquitectura preparada para cuando el SDK en Go sea compilado y distribuido, sin requerir reescribir la interfaz de usuario.
  • Portabilidad garantizada para despliegues locales desconectados de internet.