🧩 Caso 06: 🐹 Go -> 🌉 n8n -> 🎼 Symfony#
Este eje tecnológico muestra la integración entre un emisor de alta velocidad en Go y un potente backend empresarial basado en Symfony, utilizando Redis como motor de persistencia ultra-rápido.
🏗️ Arquitectura del Flujo#
- 📤 Origen:
main.go(Go 1.21) - Emisor concurrente. - 🌉 Puente: n8n (Webhook e Inyección HTTP)
- 📥 Destino:
index.php(Symfony 7 / PHP 8.2) - 📁 Persistencia: Redis 7 (In-Memory Key-Value)
🐹 Origen: Go Concurrent Dispatcher#
El emisor en Go está diseñado para un rendimiento óptimo con mínima carga:
- Lógica: Carga
posts.json, calcula los tiempos de envío y dispara las peticiones HTTP de forma concurrente. - Eficiencia: Optimizado para un consumo de memoria inferior a los 20MB durante ráfagas de tráfico.
Consejo
Para desplegar este entorno de prueba:
bashdocker-compose --profile case06 up -d
🎼 Destino: Symfony Business Receptor#
El receptor utiliza un controlador estandarizado de Symfony para procesar eventos industriales:
- Tecnología: Symfony Lite ejecutándose sobre Apache 2.4.
- Procesamiento: Parsea el JSON entrante y persiste el estado en una base de datos Redis para acceso instantáneo.
- Dashboard: Interfaz de administración integrada para monitorizar flujos de datos.
🛡️ Guardrails (Resiliencia)#
Este caso implementa protecciones de nivel corporativo:
- 🔄 Reintentos Automáticos: n8n aplica una política de 3 reintentos con intervalo de 1s ante latencias de red.
- 📥 Dead Letter Queue (DLQ): Los eventos que no pueden ser procesados por Symfony se derivan a un log de errores estructurado.
- ⚡ Fast-Path Persistence: El uso de Redis garantiza que la persistencia no sea el cuello de botella del sistema.
🚦 Verificación y Acceso#
- 🌐 Dashboard: http://localhost:8086
- ⚙️ API Endpoint:
POST /index.php - 📂 Memoria: El estado actual puede inspeccionarse directamente en Redis.
Desarrollado como parte del Social Bot Scheduler v4.0