ADR-004: Dos orquestadores — Node-RED + n8n¶
Fecha: 2026-05-11 Estado: aceptado Decisión: SmallCountry usará dos motores de automatización con responsabilidades estrictamente separadas: Node-RED para la capa física de tiempo real (sensores, actuadores, MQTT (protocolo de mensajería ligera para IoT)) y n8n para la capa lógica (workflows, APIs, notificaciones, ciclo de vida de servicios, IA). Ninguno reemplaza al otro. Ambos son necesarios.
Contexto: Un solo motor de automatización parece más simple. Pero las necesidades son contradictorias: el control de una bomba requiere latencia mínima, operación continua y cero dependencias externas. Un workflow de negocio (facturación, envío de campañas) requiere integración con APIs externas, lógica condicional compleja y programación. Además, si el único orquestador falla, todo el sistema pierde su capacidad de reacción.
Alternativas consideradas:
| Alternativa | Ventajas | Por qué se descartó |
|---|---|---|
| Solo n8n | Interfaz visual potente, muchas integraciones | No es tiempo real. Depende de PostgreSQL. Demasiado pesado para controlar una bomba. Single point of failure |
| Solo Node-RED | Tiempo real, ligero, nativo MQTT (protocolo de mensajería ligera para IoT) | No tiene las integraciones de n8n (APIs, OAuth, webhooks complejos). Los workflows de negocio serían frágiles |
| Home Assistant como orquestador | Muy popular en domótica | Solo lectura en SmallCountry. Delegar automatizaciones críticas a HA introduce un SPOF (punto único de fallo) y mezcla capas |
Consecuencias:
- ✅ Separación de dominios: la capa física (Node-RED) no depende de la capa lógica (n8n). Si n8n falla, la bomba sigue funcionando
- ✅ Cada herramienta en su punto fuerte: Node-RED para latencia mínima, n8n para lógica compleja
- ✅ Sin SPOF (punto único de fallo): si uno falla, el otro sigue operando en su dominio
- ❌ Dos herramientas que aprender y mantener: duplica la carga cognitiva del administrador
- ❌ Coordinación: necesitan MQTT como interfaz común. Los flujos que cruzan ambos dominios son más complejos de depurar
- ❌ Tentación de solapamiento: es fácil empezar a hacer en n8n cosas que deberían estar en Node-RED y viceversa. Requiere disciplina
Referencias: - Ficha: Node-RED - Ficha: n8n - Principio 6: Arquitectura por capas - Mecanismo 3: Degradación Independiente - Principio 5: Resiliencia física