Ejecución y Flujo de Datos
Cómo una ejecución de flujo de trabajo avanza desde el disparador hasta los manejadores, los registros y la medición de costos.
Un flujo de trabajo atraviesa el mismo ciclo de vida sin importar si es disparado por un botón, un webhook, una programación o una consulta entrante.
Ciclo de vida
flowchart LR
classDef step fill:#00D4AA,stroke:#0F766E,color:#06302B
classDef data fill:#3B82F6,stroke:#1E40AF,color:#fff
classDef gate fill:#FF6B35,stroke:#C2410C,color:#fff
S1["Build<br/>canvas"]:::step --> S2{"Validate<br/>reference checks"}:::gate
S2 --> S3["Save<br/>blocks + edges"]:::data
S3 --> S4["Deploy<br/>immutable version"]:::step
S4 --> S5["Bind trigger<br/>webhook · schedule · poll"]:::step
S5 --> S6["Execute<br/>resolve inputs → handlers"]:::step
S6 --> S7["Logs + cost<br/>per-block metering"]:::dataQué ocurre durante una ejecución
sequenceDiagram
participant T as Trigger
participant A as API
participant S as Serializer
participant X as Executor
participant H as Handler
participant L as LLM / Integration
participant D as Database
T->>A: Fire (webhook / schedule / manual)
A->>S: serialize(workflow)
S->>S: Build graph + topological sort
S-->>A: Execution plan
A->>X: execute(plan)
loop For each block
X->>H: handle(block, inputs)
alt AI / Integration block
H->>L: Provider call
L-->>H: Result
else Data block
H->>D: Query / insert
D-->>H: Rows
end
H-->>X: Block output (stored in context)
end
X->>D: Write execution log + cost
A-->>T: Result (streamed when applicable)Propiedades clave
- Ejecución topológica — los bloques se ejecutan en orden de dependencia; los bloques
parallelyloopgeneran sub-contextos aislados que comparten un ID de traza. - Despacho tipado — cada bloque se resuelve en uno de los 30 manejadores detrás de una única interfaz, de modo que el motor puede incorporar nuevos tipos de bloques sin cambios en el núcleo.
- Streaming — los bloques de IA transmiten tokens mediante Server-Sent Events; el editor muestra la salida en tiempo real a medida que avanza una ejecución.
- Medición de costos — cada bloque registra los tokens de entrada/salida y el costo en el registro de ejecución, que la página de Uso consulta.
Síncrono vs asíncrono
Las ejecuciones iniciadas por el usuario se realizan de forma síncrona dentro de la solicitud. Los flujos de trabajo disparados y de larga duración se envían a Cloud Tasks y se ejecutan en una función en segundo plano, por lo que no están limitados por el tiempo de espera de la solicitud.
Las ejecuciones síncronas están limitadas por el tiempo de espera de la solicitud de la plataforma. Para flujos de trabajo que puedan ejecutarse durante más tiempo, se recomienda usar un webhook o un disparador programado, que se despachan de forma asíncrona.