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.
Os valores abaixo são um exemplo de configuração; o default de cada propriedade está no comentário.
kikwiflow:
process-definition:
auto-deploy:
enabled: true # default: true
path: "classpath*:processes/**/*.kikwi" # default: este mesmo padrão
security:
deploy-enabled: true # default: false — SEM isto, nenhum processo é implantado
execution:
task-acquisition-interval-millis: 1000 # default: 5000 — intervalo do poller de tarefas assíncronas
task-acquisition-max-tasks: 20 # default: 10 — tarefas buscadas por ciclo de poller
max-concurrent-tasks: 200 # default: 200 — teto de tarefas assíncronas simultâneas
lock-timeout-millis: 30000 # default: 5000 — por quanto tempo um worker "trava" uma tarefa
shutdown-grace-period-seconds: 30 # default: 20 — quanto esperar as tarefas em voo no shutdown
retry:
default-retry-interval: "PT1M" # default: PT3M — quando um nó não declara retryPolicy própria
pulse:
sse-endpoints:
enabled: true # default: true — endpoints Pulse (stats + stream SSE)
interval: 5000 # default: 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). |
execution.lock-timeout-millis | Por quanto tempo uma tarefa adquirida fica travada para o worker que a pegou. Dimensione acima da duração do seu TaskHandler mais lento — um valor baixo demais deixa dois workers processarem a mesma tarefa. |
pulse.sse-endpoints.enabled / .interval | Habilita os endpoints Pulse (snapshot de estatísticas + stream SSE) consumidos pelo monitor embarcado 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).
Um ponto de partida comum é java.lang.NullPointerException e java.lang.IllegalArgumentException.
Detalhes de todas as propriedades de retry estão na referência completa do motor.
Próximo passo
Para a lista completa de propriedades — incluindo outbox de eventos, API REST, histórico e o monitor embarcado — veja a Referência de Configuração. Para entender como o motor implementa o que essas propriedades controlam, veja Motor de Execução.