Pub/Sub: Arquitectura Fan-Out (Multiplicando el Impacto)
Autor: Eduardo Martínez Agrelo
En el mundo de los microservicios, una sola acción del usuario suele desencadenar múltiples reacciones. En este laboratorio, exploraremos el patrón Fan-Out, una de las técnicas más potentes para escalar operaciones sin aumentar la latencia ni la complejidad del sistema emisor.
¿Qué es el patrón Fan-Out?
El Fan-Out consiste en conectar múltiples suscripciones a un único Topic. Cuando un mensaje llega al tema, Pub/Sub lo replica de forma automática y lo entrega a cada suscriptor de manera independiente:
- Escalabilidad Horizontal: Puedes añadir nuevos servicios interesados en los datos sin modificar el código del publicador original.
- Aislamiento de Errores: Si el sistema de correos falla, el sistema de facturación puede seguir procesando el mismo mensaje sin interrupciones.
Configuración Multi-Suscripción con Terraform
La ventaja de utilizar Terraform es que podemos declarar tantas suscripciones como necesitemos enganchadas al mismo ID de recurso. En este laboratorio, desplegaremos dos flujos paralelos:
resource "google_pubsub_subscription" "email_service" { ... }
resource "google_pubsub_subscription" "inventory_service" { ... }
Este enfoque permite que cada "departamento" de nuestra infraestructura consuma la información a su propio ritmo y según sus propias necesidades de computación.
Procesamiento en Paralelo Real
Al ejecutar este laboratorio, observarás un fenómeno fascinante: un único evento de venta simulará disparar un proceso de logística y otro de analítica simultáneamente. No hay colas de espera entre ellos; la nube de Google gestiona la distribución masiva de los datos para que el usuario final reciba una respuesta inmediata mientras el backend trabaja en segundo plano.
Conclusión: Sistemas que crecen sin fricción
Has aprendido a multiplicar el valor de tus datos. El patrón Fan-Out es la base de las aplicaciones modernas que necesitan ser reactivas y modulares. Sin embargo, no siempre querremos que todos los suscriptores reciban todos los mensajes; por ello, el siguiente paso será aprender a filtrar la información de manera inteligente.