Configuração Essencial
O Kikwiflow expõe suas propriedades sob o prefixo kikwiflow.*. Este documento cobre apenas as que
uma aplicação costuma precisar ajustar no dia a dia — para a referência completa de todas as
propriedades e seus defaults, veja
Referência de Configuração.
kikwiflow:
process-definition:
auto-deploy:
enabled: true # default: true
path: "classpath*:processes/**/*.kikwi" # default
security:
deploy-enabled: true # SEM isto, nenhum processo é implantado
execution:
task-acquisition-interval-millis: 1000 # intervalo do poller de tarefas assíncronas
task-acquisition-max-tasks: 12 # tarefas buscadas por ciclo de poller
max-concurrent-tasks: 200 # teto de tarefas assíncronas em execução simultânea
lock-timeout-millis: 1200 # por quanto tempo um worker "trava" uma tarefa que pegou
shutdown-grace-period-seconds: 30 # quanto esperar as tarefas em voo no shutdown
retry:
default-retry-interval: "PT1M" # intervalo padrão quando um nó não declara retryPolicy própria
pulse:
sse-endpoints:
enabled: true # habilita os endpoints Pulse (stats + stream SSE do Monitor)
interval: 5000 # intervalo de emissão do stream, em ms
| Propriedade | Quando ajustar |
|---|---|
process-definition.auto-deploy.enabled / .path | Para desabilitar o auto-deploy (deploy explícito via API/pipeline) ou organizar seus .kikwi em um caminho de classpath diferente do default. Ver Implantando Processos. |
security.deploy-enabled | Precisa ser true para qualquer deploy acontecer — inclusive o auto-deploy do classpath. O default é false, de propósito. |
execution.task-acquisition-interval-millis | Quanto tempo, no pior caso, uma tarefa assíncrona (nó com commitBefore: true, um ramo de processamento paralelo) espera para ser retomada depois de pronta. Baixar reduz latência de continuação às custas de mais polling; é o valor que você calibra ao ajustar timeouts em testes de integração (ver Testando Seus Handlers). |
execution.task-acquisition-max-tasks / max-concurrent-tasks | O quanto o worker interno puxa por ciclo e o teto de execução simultânea — suba em cargas altas, baixe para limitar o consumo de recursos da aplicação. |
retry.default-retry-interval | O intervalo padrão entre tentativas de retry quando uma tarefa não declara uma política própria (ver Retentativas). |
pulse.sse-endpoints.enabled / .interval | Habilita os endpoints Pulse (snapshot de estatísticas + stream SSE) consumidos pelo Monitor e por qualquer dashboard seu. |
kikwiflow.retry.fatal-exceptionsExiste também uma lista retry.fatal-exceptions (nomes de classe de exceção que, ao ocorrer, pulam
diretamente para abertura de incidente em vez de seguir a política de retry normal) — relevante ao
lidar com falhas que retry nunca vai resolver (ex.: IllegalArgumentException por dado malformado).
O conta-service já traz java.lang.NullPointerException e java.lang.IllegalArgumentException
nessa lista. Detalhes de todas as propriedades de retry estão na referência completa do motor.
Próximo passo
Isso conclui o Guia do Desenvolvedor até aqui. Os capítulos seguintes cobrem tipos de nó adicionais
— correlação de eventos,
cancelamento por correlação,
espera por prazo no fluxo principal e
subprocessos. Para entender como o motor implementa tudo isso
por dentro (Navigator, ContinuationService, UnitOfWork, persistência transacional), veja
Motor de Execução.