Gestión de Almacenamiento

📦 Respaldo Asíncrono de Alta Disponibilidad
Conectado a la Nube Central (Aiven)
📊
0
Total registros
🟢
0
En línea
🔴
0
En cola
💾
0
Cache local

Agregar Registro

Lista de Registros 0 registro(s)

ID Nombre Apellido Edad Fecha Acciones
Cargando...

Arquitectura de Alta Disponibilidad

Sistema diseñado para garantizar la disponibilidad de los datos incluso cuando la base de datos principal (Aiven) falla.

Flujo de datos completo
1 El usuario envía un registro desde el frontend Worker (Cloudflare)
2 Worker intenta conectar a Aiven (PostgreSQL) ✅ Si responde → Guarda directamente o ❌ Si falla → Envía a CloudAMQP
3 CloudAMQP almacena el mensaje en la cola cola_personas Espera a que el agente local lo procese
4 El Agente Local (Node.js) consume la cola Guarda inmediatamente en PostgreSQL Local
5 Cada 10 segundos, el agente sincroniza con Aiven Sube pendientes de local → nube Baja nuevos de nube → local
Aiven

Base de Datos Principal

Aiven es el origen de la verdad del sistema. Es una base de datos PostgreSQL alojada en la nube que almacena todos los registros de forma permanente.
🔗 Conexión:
db-personas-vpnoriente-27f2.i.aivencloud.com:11577
Usuario: avnadmin
Base de datos: defaultdb
SSL: Requerido (certificado propio)
Almacenamiento persistente Fuente de verdad PostgreSQL
CloudAMQP

Cola de Mensajes (LavinMQ)

CloudAMQP es un servicio de colas de mensajes basado en RabbitMQ que actúa como buffer de emergencia cuando Aiven está caído.
🔗 Conexión:
jaragua.lmq.cloudamqp.com
Usuario: nbnxhngw
Virtual Host: nbnxhngw
Cola: cola_personas
Buffer de emergencia RabbitMQ Persistente
Worker

Cloudflare Worker

El Worker es el intermediario que recibe las peticiones del frontend y decide dónde guardar los datos según la disponibilidad de Aiven.
📋 Lógica de decisión:
1️⃣ Intentar conectar a Aiven
2️⃣ Si responde → guardar directamente en la nube
3️⃣ Si NO responde → enviar a la cola de CloudAMQP
✅ El usuario siempre recibe "Registro guardado"
Enrutador inteligente Cloudflare Sin estado
Agente Local

Agente de Sincronización

El agente es un script Node.js que escucha la cola de CloudAMQP, guarda en PostgreSQL local y sincroniza bidireccionalmente con Aiven.
⚙️ Funciones:
🔹 Consumidor: Escucha la cola 24/7
🔹 Guardado local: Inserta en PostgreSQL local
🔹 Sincronización: Cada 10 segundos con Aiven
Sincronizador bidireccional Node.js PostgreSQL Cada 10s

Escenarios de funcionamiento

✅ Todo funciona

Usuario → Worker → Aiven (guarda) → Respuesta exitosa
Agente sincroniza cada 10s → Local actualizado

⚠️ Aiven caído

Usuario → Worker → ❌ Aiven falla
Worker envía a CloudAMQP → ✅ Usuario recibe "Guardado"
Agente escucha cola → Guarda en local

🔄 Recuperación

Aiven vuelve en línea → Agente detecta (10s)
Sube pendientes local → Aiven
Baja nuevos Aiven → Local
Sistema completamente sincronizado ✅

Configuración técnica

ComponenteVariableValor
AivenHostdb-personas-vpnoriente-27f2.i.aivencloud.com:11577
AivenUsuarioavnadmin
CloudAMQPHostjaragua.lmq.cloudamqp.com
CloudAMQPColacola_personas
WorkerURLhttps://worker-personas.vencedores4f.workers.dev/personas
AgenteIntervalo10 segundos
Aiven Console CloudAMQP Console Frontend