En el artículo anterior vimos cómo integrar webhooks y WebSockets en una aplicación real usando las herramientas de PCSoft.
Hoy vamos un paso más allá.
Te voy a mostrar cómo convertir ese flujo técnico en un sistema completo de respaldos automáticos con:
- Notificaciones en tiempo real,
- UI reactiva,
- Arquitectura desacoplada,
- Y una sonrisa de alivio cada vez que aparece el toast “Respaldo completado”.
Sí, programador: ahora el sistema avisa solo.
Ya no hace falta que grites “¡YA ESTÁ!” desde el fondo de la oficina.
🔧 ¿Qué soluciona este sistema?
Este sistema ataca un problema muy común en sistemas legacy o hechos a las apuradas:
- Se generan respaldos… pero nadie sabe si se completaron.
- La única forma de saberlo es “preguntando”, revisando manualmente o refrescando tablas.
- La comunicación entre partes (cliente, servidor, operador) depende de acciones manuales.
Con este proyecto, todo eso queda automatizado. Y mejor aún: lo hace aplicando patrones de diseño bien utilizados.
🧠 Arquitectura aplicada
El sistema está dividido en tres componentes principales:
- API REST
- Recibe el webhook que dispara HFSQL al terminar un respaldo.
- Guarda el contenido del JSON en una base de datos estructurada.
- No necesita enviar mensajes WebSocket: el servidor se entera solo gracias a
HWatch()
.
- Servidor WebSockets
- Está suscripto a los cambios en la tabla
respaldos
conHWatch()
. - Cuando detecta un nuevo respaldo, lo comunica a todos los clientes conectados en tiempo real.
- Está suscripto a los cambios en la tabla
- Cliente Windows
- Puede lanzar un nuevo respaldo manual.
- Se actualiza automáticamente cuando un respaldo se completa, sin necesidad de refrescar.
🧩 Patrones de diseño usados
Esta implementación real pone en práctica varios patrones fundamentales para sistemas desacoplados:
Patrón | Aplicación en el proyecto |
---|---|
Factory Method | Clase BackupFactory para crear objetos MRespaldos . |
Repository | BackupRepository encapsula el acceso a HFSQL. |
Observer | WebSocketNotifier recibe eventos cuando termina un respaldo. |
Threading | ProcessBackup() corre en segundo plano. |
Event-driven | Todo el sistema reacciona a eventos, sin polling. |
Separation of Concerns | Cada parte hace una sola cosa y la hace bien. |
🔥 Resultado final
- Automatización total del flujo de respaldo.
- Comunicación en tiempo real entre backend y cliente.
- Código limpio, mantenible y extensible.
¿Querés que te avise por Discord cuando un respaldo se complete? Podés hacerlo.
¿Querés guardar un log o enviar un correo? Extendés un observer y listo.
🧪 ¿Querés probar algo parecido?
Te dejo el proyecto base documentado en el video para que lo adaptes:
Y si querés que te lo envíe por correo o tener acceso al código, podés escribirme.
📧 Contacto: juan@barbat.dev
🧠 Sobre el autor
Este artículo forma parte del proyecto HolaWindev, un espacio creado para compartir buenas prácticas, ideas locas y sistemas reales desarrollados con WinDev, WebDev y WinDev Mobile.
💼 Escrito por Juan Barbat
🎯 Mentor técnico – Barbat.Dev
🛠️ Distribuidor autorizado de PCSoft en América Latina
🤝 Comunidad Discord: https://discord.gg/9xDAJ6ugQr