· 3 min de lectura · Leonardo Tapia
Software que funciona sin internet: cómo diseñar un sistema para comercios venezolanos
Decisiones de diseño para que un sistema de caja siga vendiendo sin internet: servidor de sucursal, ids que nacen en la caja, cola en disco, sincronización idempotente, licencias firmadas y respaldos continuos.

Un sistema de caja que se detiene cuando se cae internet no es un sistema de caja: es una fila de clientes esperando y ventas perdidas. Al diseñar Sonir Negocios partí de una premisa: la tienda tiene que funcionar completa sin conexión, y la nube es una compañera, no una dependencia.
La tienda se basta sola
Cada sucursal tiene su propio servidor con su base de datos. Las cajas, la oficina y la cocina hablan con él por la red local, nunca con la nube directamente. Si internet se cae, la tienda sigue vendiendo, facturando y moviendo inventario; cuando vuelve, sincroniza lo acumulado.

Los ids nacen donde nace el dato
Cada venta, movimiento o documento recibe su identificador único en el momento en que se crea, en la propia caja, sin pedírselo a nadie. Por eso se puede trabajar sin red y reenviar sin miedo: si una caja manda dos veces la misma venta, la nube reconoce el id y no la duplica.
Lo impreso no se pierde
El momento más delicado es justo después de imprimir la factura fiscal: el papel ya salió y la venta tiene que quedar registrada sí o sí. Si guardar falla en ese instante, la venta va a una cola en disco y se registra sola cuando el servidor vuelve.
Sincronizar en los dos sentidos
- Cada cinco minutos el servidor sube lo que falte: ventas, devoluciones, documentos y una foto del inventario cuando cambia.
- Y baja lo que viene de la nube: la tasa del BCV —que queda por confirmar antes de usarse—, las fichas del catálogo maestro, los pedidos de la tienda en línea y la licencia.
- Si no hay internet, el error se anota y se reintenta solo. Reenviar nunca duplica.
Una licencia que se verifica sin internet
La licencia llega de la nube firmada digitalmente, y la tienda la verifica sin conexión con una clave pública incluida en el programa. Copiarla de otra tienda o editarla no sirve, porque la firma deja de cuadrar. Se renueva sola en cada sincronización y solo vence si la tienda pasa demasiados días sin conectarse. Y atrasar el reloj de Windows no alarga nada: el servidor recuerda la hora más alta que ha visto.
Preparado para los cortes de luz
- La base de datos confirma cada escritura en disco antes de darla por buena: lo guardado sobrevive a un apagón.
- Copia completa al mes, incremental cada día y el diario de cambios guardado cada pocos minutos: si muere el disco, se pierden como mucho unos minutos.
- Se puede volver a cualquier minuto del tramo guardado, y una vez al mes el sistema hace un simulacro de restauración por su cuenta.
Lo que me llevo de este diseño
- Diseñar sin conexión desde el primer día es mucho más barato que añadirlo después.
- La idempotencia —que repetir una operación no cambie el resultado— es lo que hace segura la sincronización.
- Los momentos críticos, como imprimir una factura, merecen su propio plan de fallo.
Leonardo Tapia