Ahora puedes invocar a Gemini directamente desde Google Cloud Pub/Sub... ¿pero deberías?
Apr 21, 2026
Updated: Apr 21, 2026

Ahora puedes invocar a Gemini directamente desde Google Cloud Pub/Sub... ¿pero deberías?

A lo largo de nuestras carreras, a los desarrolladores y arquitectos de software siempre se nos ha enseñado a ser cautelosos sobre dónde colocamos la lógica de negocio. ¿Deberíamos esconderla en componentes del frontend? ¿En triggers de bases de datos? ¿En el middleware? La recomendación clásica siempre es mantener estas reglas en servicios centralizados para no perderles el rastro.

Sin embargo, Google Cloud acaba de lanzar una funcionalidad que desafía esta noción y nos obliga a replantearnos nuestras arquitecturas: ahora es increíblemente sencillo invocar un LLM directamente desde un tema (topic) o suscripción en Google Cloud Pub/Sub.

¿Cuándo tiene sentido hacer esto? ¿Cómo se ve en la práctica? Hoy vamos a desglosarlo, crear una implementación paso a paso, y debatir si realmente deberías hacerlo.

El poder de los SMTs (Single Message Transforms) en Pub/Sub

Si alguna vez has lidiado con pipelines de procesamiento de datos o eventos en la nube, sabes que muchas veces necesitamos alterar un mensaje en tránsito. Para esto, Pub/Sub cuenta con los Single Message Transforms (SMTs), los cuales nos permiten manipular un flujo de datos (por ejemplo, para limpiar datos sensibles o cambiar formatos) antes de que lleguen al consumidor final.

La gran novedad en el ecosistema es el AI Inference SMT.

Usando esta herramienta, podemos invocar a modelos gestionados de Vertex AI (como nuestro querido Gemini), así como a modelos de terceros, directamente en la capa de mensajería. Esto puede aplicarse a nivel de Topic (donde todas las suscripciones reciben el mensaje transformado por IA) o de manera más controlada a nivel de una Suscripción específica.

Un escenario del mundo real: El evento del "Nuevo Empleado"

Imagina que estás construyendo una arquitectura orientada a eventos para un sistema de Recursos Humanos. Cada vez que se contrata a alguien, se emite un evento de "nuevo empleado" hacia Pub/Sub.

Uno de los microservicios suscritos a este evento se encarga de enviar un correo de bienvenida. En lugar de que ese microservicio tenga que encargarse de armar el texto y conectarse a la API de IA, podemos configurar nuestra suscripción en Pub/Sub para que invoque directamente a un LLM. Así, el mensaje que llega al microservicio destino ya viene enriquecido con un correo de bienvenida cálido, personalizado y pre-generado.

Manos a la obra: Invocando a Gemini desde Pub/Sub

Veamos cómo configurar esto directamente desde la consola de Google Cloud.

1. Crear el Topic y la Suscripción

Primero, creamos un Topic estándar en Pub/Sub. Aunque podríamos aplicar la transformación de IA aquí mismo para que aplique a todo, prefiero ser quirúrgico y aplicarlo solo en la suscripción. Por lo tanto, creamos una suscripción basada en pull atada a este topic.

image.png

2. Encadenar Transformaciones con JavaScript

Como desarrollador web, esta es mi parte favorita. El AI Inference SMT espera que le enviemos un formato muy específico, pero nuestro evento original viene crudo. Afortunadamente, Pub/Sub nos permite "encadenar" transformaciones.

image.png

Primero, añadimos un SMT utilizando una Función Definida por el Usuario (UDF) en JavaScript. Esta función tomará los datos del empleado, los parseará y construirá el prompt exacto que Gemini necesita.

image.png

Aquí está el código en JavaScript:

function transform(message, metadata) {
  var incomingData = JSON.parse(message.data);
  var promptText = "Genera un correo electrónico de bienvenida personalizado teniendo en cuenta el nombre de la persona, su ubicación y su rol. " + JSON.stringify(incomingData);

  var aiInferenceObject = {
    model: "google/gemini-2.5-flash",
    messages: [
      { role: "user", content: promptText }
    ]
  };

  return {
    data: JSON.stringify(aiInferenceObject),
    attributes: message.attributes || {}
  };
}

Tip de GDE: Google Cloud tiene un botón maravilloso llamado "Test Transforms" que nos permite probar este bloque de código JavaScript en línea directamente en la consola antes de guardar, facilitando muchísimo la experiencia de desarrollo.

image.png

3. Añadir el AI Inference SMT

Ahora añadimos nuestro segundo SMT a la cadena: el AI Inference SMT. Aquí configuramos que queremos usar el modelo gestionado google/gemini-2.5-flash a través de Vertex AI. Seleccionamos la cuenta de servicio adecuada con los permisos correctos, y configuramos parámetros básicos de la IA como el límite de tokens (max tokens) y la temperatura (temperature).

image.png

Cuando volvemos a la ventana de Test Transforms, podemos probar ambos SMTs juntos.

image.png

¡Es pura magia! El resultado de nuestra función en JavaScript alimenta automáticamente la llamada a Gemini, y la salida final es nuestro evento original transformado en un texto de bienvenida listo para ser despachado por el servicio de correos.

image.png

La gran pregunta: ¿Deberías hacerlo?

Integrar capacidades de LLMs en tu arquitectura de nube nunca había sido tan fácil, rápido y con tan poco código. Tener tu Pub/Sub "potenciado por IA" te ahorra la necesidad de construir, desplegar y mantener SDKs en tus microservicios solo para generar texto simple.

Pero como arquitecto de software, mi consejo es: úsalo con sabiduría.

Es tentador poner IA en todas partes, pero recuerda nuestro principio inicial sobre la visibilidad de la lógica de negocio. Es excelente para enriquecer mensajes, sanitizar datos complejos o pre-computar texto auxiliar (como en el caso del correo). Sin embargo, si esa transformación de IA se vuelve el núcleo crítico de tu negocio, ocultarlo en las configuraciones de una suscripción de Pub/Sub puede hacer que el proceso de debugging sea un dolor de cabeza para tu equipo en el futuro.

Documenta bien tu arquitectura, mantén la observabilidad alta y aprovecha el ecosistema de Google Cloud para moverte más rápido sin sacrificar el orden.

¿Qué opinas tú? ¿Ves valor en enriquecer tus eventos en tiempo real con LLMs directamente en el middleware, o prefieres mantener esa lógica explícita en el código de tu servidor?

Déjame tus comentarios, y si te ha parecido útil este análisis, no olvides explorar más artículos sobre el cruce entre Tecnologías Web y la Inteligencia Artificial aquí en sebastian-gomez.com. ¡Hasta la próxima!

Sources help 

  1. You can now easily call LLMs from your messaging engine. Should ...

Sebastian Gomez

Sebastian Gomez

Creador de contenido principalmente acerca de tecnología.

Leave a Reply

0 Comments

Advertisements

Related Posts

Categorias