🧩 Caso 03: 🐹 Go -> 🌉 n8n -> 🟢 Node.js#
Este eje tecnológico muestra la potencia de un emisor concurrente escrito en Go comunicándose con un ecosistema flexible y asíncrono basado en Node.js (Express).
🏗️ Arquitectura del Flujo#
- 📤 Origen:
main.go(Go 1.21) - Scheduler de alta concurrencia. - 🌉 Puente: n8n (Webhook e Inyección HTTP)
- 📥 Destino:
index.js(Node.js 20 + Express) - 📁 Persistencia: PostgreSQL 15
🐹 Origen: Go Concurrent Scheduler#
El emisor en Go está diseñado para la máxima eficiencia y velocidad:
- Lógica: Utiliza goroutines para el escaneo de
posts.jsony despacho inmediato. - Tecnologías: Cliente HTTP nativo de Go sin dependencias externas pesadas.
Consejo
Para activar este flujo en el laboratorio:
bashdocker-compose --profile case03 up -d
🟢 Destino: Node.js Express Receptor#
El receptor utiliza Express para gestionar eventos con la flexibilidad característica de Node:
- Tecnología: Servidor Express con optimización de JSON parsing.
- Base de Datos: Persistencia relacional avanzada en PostgreSQL.
- Dashboard: Interfaz dinámica en el puerto
:8083con recarga automática de datos.
🛡️ Guardrails (Resiliencia)#
Este caso implementa defensas contra fallos en cascada:
- 🔄 Reintentos Automáticos: n8n aplica una política de 3 reintentos con intervalo de 1s.
- 📥 Dead Letter Queue (DLQ): Los eventos que fallan tras los reintentos se registran en una tabla de auditoría para recuperación manual.
- 🔍 Validación de Schema: El receptor Node valida rigurosamente el payload antes de la inserción en el PGSQL.
🚦 Verificación y Acceso#
- 🌐 Dashboard: http://localhost:8083
- ⚙️ API Endpoint:
POST /webhook - 📂 Persistencia: Accesible vía herramientas estándar de PostgreSQL.
Desarrollado como parte del Social Bot Scheduler v4.0