Pular para o conteúdo principal
Página não listada
Esta página não está listada. Mecanismos de busca não irão indexá-la, e somente usuários que possuam o link direto poderão acessá-la

Apêndice — Tipos de Nó e Regras do Linter

Referência compartilhada pelo Modelador (Craft), pela extensão do VS Code e pelas Agent Skills.


Tipos de nó

Nós de fluxo (paleta do editor visual)

Doze tipos aparecem na paleta, nesta ordem. A coluna "tipo na engine" é o valor type que vai para o JSON .kikwi e o nome usado pelas Agent Skills.

#Nome na paletaTipo na engineO que faz
1InícioDEFAULT_START_EVENTPonto de partida do processo. Acionado via API REST ou eventos do sistema.
2FimDEFAULT_END_EVENTFinaliza o fluxo atual.
3DecisãoEXCLUSIVE_GATEWAYAvalia regras de negócio e segue por apenas um caminho verdadeiro. Exige que uma das saídas seja o fluxo padrão.
4Divisão Paralela (Split)PARALLEL_GATEWAYDivide o fluxo em dois ou mais caminhos simultâneos.
5Ponto de Encontro (Join)JOIN_GATEWAYPausa e aguarda todos os caminhos paralelos chegarem antes de seguir.
6Tarefa Externa (Espera)EXTERNAL_TASKPausa o processo esperando uma resposta de fora (aprovação humana, webhook).
7Tarefa ExecutávelEXECUTABLE_TASKRoda lógica de negócio no backend, automática, sem pausar o processo.
8Captura de Evento (Chave Única)EVENT_CATCHER (catchType: STANDALONE)Pausa e aguarda um evento externo correlacionar uma chave de negócio.
9Captura de Evento (Grupo)EVENT_CATCHER (catchType: GROUP)Pausa e aguarda N eventos correlacionados (scatter-gather); política ALL ou ANY.
10Tarefa TemporizadoraTIMER_TASKNó de fluxo principal que pausa até um prazo resolvido e então segue pelas próprias saídas.
11Call Activity (Subprocesso)CALL_ACTIVITY_COORDINATORInicia uma ou mais instâncias de outro processo (por chave) e só segue quando todas concluírem.
12Lançador de EventoEVENT_THROWERResolve uma chave de correlação e a entrega internamente, sem pausar. Contraparte da Captura de Evento; falha se ninguém aguardar a chave.

As Captura de Evento (Chave Única) e (Grupo) são dois itens de paleta distintos que viram o mesmo type: "EVENT_CATCHER" no JSON, diferenciados pelo campo catchType.

Eventos de borda (boundary events)

Não vêm da paleta — são anexados a um nó já existente pelos botões no card do nó ou pelo Inspector. As Agent Skills os contam como tipos de nó próprios, totalizando os 15 tipos do vocabulário .kikwi:

Tipo na engineO que faz
BOUNDARY_INTERRUPTIVE_TIMERPrazo que interrompe a atividade a que está anexado quando expira, desviando o fluxo.
BOUNDARY_NON_INTERRUPTIVE_TIMERPrazo que dispara um caminho paralelo sem interromper a atividade (ex.: lembrete de SLA).
BOUNDARY_ERROR_HANDLERCaptura um erro de negócio (um errorCode) lançado pela tarefa e desvia o fluxo. Um handler por errorCode.
BOUNDARY_INTERRUPTIVE_CATCH_EVENTAguarda um evento correlacionado que interrompe a atividade quando chega.

Regra de modelagem de erros. Um erro de negócio é sempre um BOUNDARY_ERROR_HANDLER anexado à tarefa que falha — nunca um EXCLUSIVE_GATEWAY comutando sobre um "motivo de falha". Um gateway só pode rotear sobre um valor que já foi calculado com sucesso.

Matriz de anexação validada pelo linter

Quais eventos de borda cada nó de fluxo aceita (regra KIKWI-013):

Nó de fluxoEventos de borda aceitos
Tarefa ExecutávelBOUNDARY_ERROR_HANDLER, BOUNDARY_NON_INTERRUPTIVE_TIMER
Tarefa ExternaBOUNDARY_NON_INTERRUPTIVE_TIMER, BOUNDARY_INTERRUPTIVE_TIMER, BOUNDARY_INTERRUPTIVE_CATCH_EVENT
Captura de Evento (Chave Única / Grupo)BOUNDARY_NON_INTERRUPTIVE_TIMER, BOUNDARY_INTERRUPTIVE_TIMER
Tarefa TemporizadoraBOUNDARY_INTERRUPTIVE_CATCH_EVENT
Call Activity (Subprocesso)BOUNDARY_INTERRUPTIVE_TIMER, BOUNDARY_NON_INTERRUPTIVE_TIMER
Lançador de Evento(nenhum)

Início, Fim e os gateways não aceitam eventos de borda.


Regras do linter

O linter roda a cada alteração no editor visual (Craft web e VS Code). Cada regra tem um ruleId KIKWI-0XX; a documentação completa de cada uma fica em https://docs.kikwiflow.com/rules/<ruleId>.

Severidade error impede uma exportação limpa. Severidade warning é recomendação.

RegraSeveridadeTítuloO que aponta
KIKWI-001warningNó DesconectadoO nó não está conectado a nada; será ignorado pela engine na execução.
KIKWI-002errorNome de Tarefa VazioTarefas e gateways precisam de nome descritivo (não o nome técnico do tipo) para o fluxo e os logs fazerem sentido.
KIKWI-003errorCaminho sem SaídaO nó precisa ser conectado a um próximo passo ou a um evento de fim (exceto o próprio Fim).
KIKWI-004warningConfiguração PendenteTarefa executável ainda sem um Executor (bean) configurado. Um dev precisa configurar antes do fluxo ir ao ar.
KIKWI-005errorEvento de Início InválidoO processo precisa ter exatamente um evento de início.
KIKWI-006errorConexão QuebradaUma conexão aponta para um nó que não existe mais no grafo.
KIKWI-007errorFluxo Padrão AusenteGateway exclusivo sem fluxo padrão (default) — se nada casar em runtime, o processo falha.
KIKWI-008errorRotas de Gateway em ConflitoGateway exclusivo com mais de um default, ou duas saídas com a mesma resposta esperada.
KIKWI-009errorSplit/Join IncompletoSplit paralelo sem join correspondente (ou vice-versa) — a engine não resolve o ramo.
KIKWI-010errorPolítica de Retry sem Máximo de TentativasretryPolicy declarado sem maxRetries — a engine trata silenciosamente como zero tentativas.
KIKWI-011errorCall Activity IncompletacalledElement é obrigatório; usar elementVariable exige collectionVariable.
KIKWI-012errorID de Nó DuplicadoDois ou mais nós com o mesmo ID — a exportação sobrescreveria um deles silenciosamente.
KIKWI-013errorEvento de Borda Não SuportadoEvento de borda anexado a um tipo de nó que a engine não aceita (ver matriz acima).
KIKWI-014errorEstratégia de Resolução IncompletaUma estratégia (BEAN / VARIABLE / STATIC / TEMPLATE) foi escolhida, mas o campo correspondente está vazio.
KIKWI-015warningRamo de Gateway Sem RótuloUm ramo de saída de gateway exclusivo sem rótulo — quem lê o diagrama não sabe qual condição leva por esse caminho.

:::note Linter de modelagem ≠ validação de deploy Estas 15 regras validam a modelagem no editor, antes do .kikwi sair da ferramenta. A engine tem, separadamente, um validador de deploy (DeployValidator) com seu próprio catálogo de regras normativas, aplicado quando o processo é implantado. As duas camadas se complementam; não são a mesma lista. :::