Saltar al contenido
Leonardo Tapia

· 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.

Captura de Sonir Negocios: el cobro de una venta con pago mixto en divisas y pago móvil, sobre la pantalla de caja.

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.

Asistente de instalación de Sonir Negocios preguntando qué será la computadora: la única de la tienda, el servidor, una caja, la oficina o el salón.
El instalador pregunta qué papel tiene cada computadora en la tienda.

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.

¿Tienes un producto que construir?

Barinas, Venezuela · Remoto