Skip to main content
A execução de workflows no Triglit é orquestrada pela engine, que gerencia o fluxo de dados, pausas, retomadas e tratamento de erros.

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ício
  • running: Em execução
  • paused: Pausada (aguardando retomada)
  • completed: Concluída com sucesso
  • failed: 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:
Paralelismo:
  • 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ário
  • wait: Aguarda tempo determinado
  • waitForEvent: 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):
Ordem:
  1. node-1 executa primeiro
  2. node-2 e node-3 executam em paralelo (após node-1)
  3. node-4 executa 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

Torne workflows idempotentes para permitir retries seguros.
Configure timeouts realistas baseados na complexidade do workflow.
Sempre inclua tratamento de erro e use retries quando apropriado.
Monitore execuções e configure alertas para falhas.
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)
Para workflows longos, considere dividir em múltiplos workflows menores e conectá-los via webhooks.