O que é uma Execução (Run)?
Uma run é uma instância de execução de um workflow para uma entidade específica (entityId). Cada run:
- Tem um ID único
- Está associada a um workflow version publicado
- Processa uma entidade específica (pedido, usuário, etc.)
- Mantém um contexto de execução compartilhado
- Pode ser pausada e retomada
Estrutura de uma Run
Status de Execução
Estados Possíveis
pending: Aguardando iníciorunning: Em execuçãopaused: Pausada (aguardando retomada)completed: Concluída com sucessofailed: Falhou (após retries)
Fluxo de Execução
1. Início da Execução
Um trigger inicia a execução:2. Criação da Run
O sistema cria uma run automaticamente:3. Execução de Nodes
Nodes são executados em ordem topológica:- Nodes sem dependências executam em paralelo
- Nodes dependentes aguardam conclusão dos anteriores
4. Contexto Compartilhado
Dados fluem entre nodes via contexto:Pausas e Retomadas
Nodes Pausáveis
Alguns nodes podem pausar a execução:input: Aguarda entrada do usuáriowait: Aguarda tempo determinadowaitForEvent: Aguarda evento externo
Quando uma Run Pausa
Retomando uma Run
Tratamento de Erros
Retry Automático
Nodes podem ter retry configurado:Dead Letter Queue (DLQ)
Falhas persistentes vão para DLQ:Ordem de Execução
Topologia
Nodes são executados baseado nas edges (conexões):node-1executa primeironode-2enode-3executam em paralelo (após node-1)node-4executa após node-2 e node-3
Trigger Nodes
Se um workflow foi iniciado por um trigger, a execução começa nos nodes conectados ao trigger:Timeout
Timeout por Run
Cada run tem um timeout máximo (padrão: 30 minutos):Timeout por Node
Nodes individuais também podem ter timeout:Observabilidade
Logs
Cada execução gera logs estruturados:Métricas
Métricas são coletadas automaticamente:- Tempo de execução
- Taxa de sucesso/falha
- Nodes executados
- Pausas e retomadas
Boas Práticas
Idempotência
Idempotência
Torne workflows idempotentes para permitir retries seguros.
Timeouts Apropriados
Timeouts Apropriados
Configure timeouts realistas baseados na complexidade do workflow.
Tratamento de Erros
Tratamento de Erros
Sempre inclua tratamento de erro e use retries quando apropriado.
Monitoramento
Monitoramento
Monitore execuções e configure alertas para falhas.
Contexto Limpo
Contexto Limpo
Mantenha o contexto organizado e evite dados desnecessários.
Limitações
- Timeout máximo: 30 minutos por run (configurável)
- Nodes por run: 100 nodes (configurável)
- Tamanho do contexto: 1MB por run
- Retries: Máximo de 3 por node (configurável)

