
El 9 de mayo de 2026 Cloudflare lanzó Dynamic Workflows, una biblioteca de código abierto con licencia MIT que amplía su motor de ejecución duradera para permitir que el código de los flujos de trabajo cambie por inquilino, por agente o por solicitud en tiempo de ejecución. La entrega introduce una separación entre la definición lógica del workflow y la unidad tradicional de despliegue, de modo que la plataforma puede enrutar y ejecutar distintas implementaciones del mismo flujo sin redeployar la infraestructura central.
Hasta ahora, Workflows exigía que el código del flujo formara parte del despliegue: cada deploy incluía una binding y una clase específicas. Dynamic Workflows elimina esa restricción. La plataforma puede dirigir llamadas individuales a env.WORKFLOWS.create(...) hacia el código propio de un inquilino y, cuando el motor despierta para ejecutar un paso segundos, horas o días después, despacha run(event, step) al mismo código que inició la ejecución, manteniendo identificadores, pausas/continuaciones, reintentos e hibernación intactos.
La implementación ocupa aproximadamente 300 líneas de TypeScript y coloca un Worker Loader entre el motor de Workflows y el código del inquilino — un Dynamic Worker—. Ese loader envuelve la invocación con metadatos del inquilino; el engine persiste esa carga y, al despertar para ejecutar un paso, usa los metadatos para enrutar la ejecución al módulo correcto. Operaciones propias de Workflows como step.sleep('24 hours') y step.waitForEvent() funcionan sin cambio en su semántica.
El paquete expone utilidades concretas: createDynamicWorkflowEntrypoint, DynamicWorkflowBinding y wrapWorkflowBinding. El patrón de uso mostrado consiste en cargar metadatos desde un almacén (por ejemplo env.LOADER.get) que contiene compatibilityDate, mainModule y un mapa de módulos (como 'index.js'), obtener el código del inquilino con fetchTenantCode(tenantId) y volver a envolver la binding WORKFLOWS para cada tenant, de modo que cada ejecución consulte el artefacto correcto en tiempo real.
Cloudflare describe casos de uso claros: plataformas donde la IA genera TypeScript por inquilino, productos CI/CD con pipelines definidos por repositorio y SDKs de agentes en los que cada agente declara su plan durable. En el ejemplo de CI/CD, el código del pipeline vive en el repositorio del cliente como un WorkflowEntrypoint en TypeScript; la plataforma lo carga dinámicamente y cada paso se ejecuta con semánticas duraderas, persistentes y reintentables, sin obligar a centralizar o redeployar ese código.
En la demostración de pipeline la compañía combina cuatro primitivas: Artifacts, un almacenamiento versionado y 'Git-native' que ofrece hidratación perezosa y fork() instantáneo por ejecución; Dynamic Workers, pasos livianos y aislados que arrancan en milisegundos; Dynamic Workflows, que coordina ejecuciones duraderas y permite hibernación durante aprobaciones; y Sandboxes, pasos de mayor peso que mantienen arranques cálidos mediante snapshots. Juntas, estas piezas optimizan tanto latencias como eficiencia operativa en pipelines dinámicos.
Cloudflare contrapone este enfoque con la ceremonia tradicional del CI, donde aprovisionar una VM, descargar una imagen base, clonar el repositorio e instalar dependencias añade minutos antes de empezar a ejecutar trabajo real. Al no mover el repositorio y traer el cómputo hacia él, la pila Dynamic Workflows reduce latencias de inicio y el coste del tiempo idle, lo que según la compañía posibilita servir millones de flujos únicos con coste de inactividad prácticamente nulo.
Por qué importa: Dynamic Workers resolvió la capa de cómputo para código dinámico multiinquilino y Durable Object Facets abordó el almacenamiento, dando a cada app dinámica su propia base SQLite aislada. Dynamic Workflows añade ahora la pieza de ejecución duradera por inquilino, lo que facilita crear plataformas con pipelines personalizados, ejecución de agentes o flujos generados por IA sin necesidad de redeploys ni de recompilar la infraestructura central.
Fuentes
Respuestas (0)
Aún no hay respuestas en este tema.