Branching

WorkflowsBranching
Zoen

Branching é como um workflow se divide em caminhos diferentes com base no resultado de um passo. O Zoen oferece dois blocos para isso: o bloco Condition, que decide com uma regra explícita, e o Router, que deixa um modelo decidir a partir da intenção.

What you will learn

Bifurcar o fluxo

Depois que um passo produz um resultado, o branching envia a execução por um caminho ou outro, em vez de seguir em linha reta.

Condition: decidir com uma regra

O bloco Condition escolhe um ramo a partir de uma regra explícita que você escreve, uma comparação sobre uma saída anterior.

Router: deixar um modelo decidir

O Router lê a entrada e escolhe um ramo a partir da intenção em linguagem natural, para quando a regra é ambígua.

Uma bifurcação no fluxo

A maioria dos workflows que você viu roda em linha. O branching adiciona uma bifurcação: em algum ponto a execução olha o resultado de um passo e segue por um caminho ou outro. Os caminhos podem fazer trabalhos completamente diferentes.

Aqui está a forma de uma bifurcação: um passo decide, e a execução segue por um caminho ou outro:

O bloco Condition, decidir com uma regra

O bloco Condition bifurca com base em uma regra explícita, uma comparação sobre a saída de um bloco anterior, como prioridade igual a "high". O ramo correspondente roda; os outros não. É determinístico e previsível.

O bloco Router, deixar um modelo decidir

Às vezes a regra é ambígua: "envie perguntas de cobrança por um caminho, todo o resto por outro." O bloco Router entrega a decisão a um modelo: ele lê a entrada, escolhe o ramo que corresponde à intenção, e a execução continua por ele. A mesma bifurcação, mas quem decide está raciocinando em vez de seguir uma regra fixa.

Ainda um só workflow

Não importa como bifurque, ainda é um só workflow, e cada execução é registrada. Abra os logs e você vê exatamente qual caminho uma determinada execução tomou, e por quê.

Common Questions

Use um Condition quando uma regra puder decidir, como prioridade igual a high. Use um Router quando decidir exigir julgamento, como ler uma mensagem e escolher o time certo: o Router deixa um modelo decidir.
Sim. Conditions encadeiam caminhos if e else, e um Router pode encaminhar para qualquer número de destinos.
Ele simplesmente não roda. O log registra qual caminho a execução tomou, então o branching permanece totalmente inspecionável.

Documentação relacionada