● Arquitectura Web & Tolerancia a Fallos

Cómo construir un POS Offline-First con IndexedDB y sincronización

En entornos de alta frecuencia como barras nocturnas o predios feriales, depender de un ping HTTP a la nube para emitir cada ticket es una receta para el colapso. Esta es la arquitectura que implementamos en producción.

1. La Falacia de la Conectividad Permanente

La mayoría de los sistemas web modernos asumen que la conexión a internet es un recurso continuo y garantizado. Sin embargo, en eventos masivos o galpones industriales, la atenuación de señal provocada por estructuras metálicas y la saturación de antenas celulares por miles de teléfonos concurrentes reduce la tasa de éxito de peticiones HTTP a menos del 70%.

2. El Patrón Local-First con IndexedDB

En lugar de enviar la transacción al backend y esperar la confirmación para imprimir el ticket, el POS escribe la venta localmente en una base de datos IndexedDB en el navegador del dispositivo con un UUID v4 determinista.

La comanda se imprime de inmediato en la impresora térmica conectada por Bluetooth o USB sin esperar al servidor. Un worker en segundo plano (Background Sync) procesa la cola de transacciones pendientes tan pronto detecta conectividad, resolviendo posibles conflictos mediante timestamps de auditoría.

3. Resultados en Producción con Noctra

Este patrón es el corazón del motor de barra de Noctra (Noctra Nightlife OS). Gracias a esta arquitectura, más de 120 barras operan ininterrumpidamente cada fin de semana en toda Argentina, sin perder una sola venta incluso durante apagones totales de conectividad externa.

Consultar por WhatsApp