🧩 Caso 02: 🐍 Python -> 🌉 n8n -> 🐹 Go#
Este eje tecnológico integra la versatilidad de Python para el scripting de automatización con la extrema eficiencia de un receptor compilado en Go, enfocado en baja latencia.
🏗️ Arquitectura del Flujo#
- 📤 Origen:
bot.py(Python 3.11 + Pydantic) - 🌉 Puente: n8n (Orquestación de Eventos)
- 📥 Destino:
main.go(Compilado en Go 1.21 / Alpine 3.20) - 📁 Persistencia: MariaDB 10.11
🐍 Origen: Python Event Bus#
El bot utiliza el motor de eventos común para detectar y despachar publicaciones programadas:
- Lógica: Carga
posts.jsony valida cada entrada antes del envío. - Webhook: Dirigido específicamente al flujo de n8n para receptores Go.
Consejo
Para levantar este entorno de prueba:
bashdocker-compose --profile case02 up -d
🐹 Destino: Go High-Performance Receptor#
El receptor Go destaca por su concurrencia segura y mínima huella de memoria:
- Tecnología: Servidor HTTP nativo de Go optimizado.
- Seguridad de Hilo: Implementa
sync.Mutexpara garantizar integridad en escrituras concurrentes. - Base de Datos: Persistencia robusta en MariaDB.
🛡️ Guardrails (Resiliencia)#
Este caso aprovecha los patrones de n8n para asegurar la entrega:
- 🔄 Reintentos Automáticos: Hasta 3 intentos ante fallos de red o saturación del servicio Go.
- 📥 Dead Letter Queue (DLQ): Si el binario Go no responde, el mensaje se guarda en una cola de errores con el payload original.
- ⚡ Baja Latencia: Diseñado para procesar ráfagas de eventos sin degradación del servicio.
🚦 Verificación y Acceso#
- 🌐 Dashboard: http://localhost:8082
- ⚙️ API Endpoint:
POST /webhook - 📁 Salud del Binario: Verificable vía logs internos de Docker.
Desarrollado como parte del Social Bot Scheduler v4.0