Kikwiflow
O que é
O Kikwiflow é um motor de orquestração de processos de negócio — workflow / BPM — que roda
embarcado: entra como uma dependência dentro do seu próprio app Java 21 + Spring Boot, sem um
serviço externo para subir e manter à parte. Um processo é um grafo de passos descrito em JSON
(.kikwi), desenhado visualmente no Kikwiflow Craft; a lógica de
cada passo é uma classe Java comum, registrada como bean Spring. O Kikwiflow
Monitor mostra cada instância em execução sobre o próprio
diagrama.
Se você já quer pôr a mão na massa, o Início Rápido monta um processo real do zero em menos de 15 minutos. O resto desta página responde a pergunta que um arquiteto ou um tech lead faz antes de instalar qualquer coisa: por que isso existe?
O problema do sistema que ninguém entende mais
Processos de negócio distribuídos crescem. Times crescem. E hoje, com geração de código acelerada por IA, código cresce mais rápido do que a capacidade de qualquer pessoa — humana ou não — de entendê-lo como um todo.
O resultado é um sistema que funciona — até não funcionar. E quando para, ninguém sabe exatamente onde no processo de negócio a falha aconteceu, quais instâncias foram afetadas, e o que cada uma carregava no momento da falha. Um incidente que deveria levar minutos para diagnosticar leva horas, porque a pergunta "o que estava acontecendo com o pedido #4471 às 14h32?" não tem uma resposta direta — só grep em logs espalhados por serviços diferentes, na esperança de reconstruir uma linha do tempo que devia estar visível o tempo todo.
Isso não é uma crítica a um time ou a uma linguagem. É o estado natural de sistemas distribuídos sem observabilidade de negócio — só que o problema fica maior, mais rápido, na proporção em que mais código é escrito por menos esforço humano por linha.
O problema do processo que vive fora do código
A forma tradicional de resolver essa falta de visibilidade é criar uma camada separada: o processo é modelado em uma linguagem de modelagem própria, executado por um motor que opera como serviço externo, e o código da aplicação se conecta a esse motor via API.
Isso funciona. E tem um custo real: a lógica de negócio passa a morar em dois lugares. Quem desenvolve precisa aprender duas ferramentas — a linguagem de programação da aplicação, e a linguagem de modelagem do motor. Os testes automatizados cobrem o código, mas raramente cobrem o processo como um todo, porque o processo não é código — é uma definição interpretada por um sistema externo, com seu próprio ciclo de vida, sua própria forma de depurar, sua própria curva de aprendizado. Quando algo falha em produção, o stack trace aponta para dentro do motor, não para o seu código.
O que o Kikwiflow propõe
A lógica do processo e a lógica de negócio vivem no mesmo lugar: no código Java que o time já escreve, nos testes que o time já roda, no repositório que o time já versiona. O motor embarcado cuida da orquestração, da persistência, das retentativas, dos timers — sem exigir que o time opere um serviço adicional. O Kikwiflow Monitor devolve a visibilidade que sistemas distribuídos perdem naturalmente: qual instância, em qual etapa, com quais variáveis, agora.
Isso não elimina a complexidade de orquestrar um processo de negócio distribuído — nenhuma ferramenta elimina. Mas move essa complexidade para dentro do lugar onde o seu time já sabe trabalhar bem: código Java, com tipagem, com testes, com breakpoint.
A diferença central: sem BPMN XML, sem expression language
Um processo é um grafo de nós descrito em JSON. A lógica de cada nó é uma classe Java comum, registrada como bean Spring. Não há expression language, não há scripting embutido, não há XML.
Na prática:
- Uma tarefa executável não aponta para uma expressão — aponta para o nome de um bean Spring que
implementa a interface
TaskHandler. Você escrevehandle(ExecutionContext execution)como escreveria qualquer outro componente Spring: injeção de dependência normal, testes com Mockito, breakpoints do seu jeito habitual. - Uma decisão em um gateway não é uma expressão booleana em uma string — é o retorno de um método
resolve(EvaluationContext context)de uma classe Java comum, tão testável quanto qualquer outra classe de domínio. - Prazos de timer e políticas de retry seguem o mesmo padrão: interface Java pequena, implementação livre, resolução por nome de bean em tempo de execução.
O processo em si — a forma do grafo, quem chama quem — é modelado visualmente no Kikwiflow
Craft e exportado como um arquivo .kikwi (JSON). A lógica de cada
nó vive no seu código Java, no seu repositório, sob os mesmos testes e revisão de código do resto da
aplicação.
Embarcado, não um serviço separado
O Kikwiflow roda dentro da sua aplicação Spring Boot, como uma dependência Maven — não como um serviço externo que você precisa provisionar, versionar e manter disponível separadamente. O motor persiste o estado de cada instância de processo (MongoDB, hoje) e cuida de orquestração, retentativas e timers usando a própria capacidade de concorrência da sua aplicação, via threads virtuais.
O que você ganha
- Depuração normal. Um breakpoint em um
TaskHandleré um breakpoint Java comum. O stack trace de uma falha em produção aponta para o seu código, não para dentro do motor. - Testes normais. Um handler é testável com JUnit e Mockito, sem subir infraestrutura. Ver Testando Seus Handlers.
- Refatoração segura. Renomear uma classe, extrair um método, mover um pacote — a IDE acompanha, porque a lógica do processo é código Java de verdade, não uma string interpretada em tempo de execução.
- Visibilidade operacional. O Kikwiflow Monitor mostra cada instância em execução sobre o próprio diagrama do processo, em tempo real, com capacidade de intervir diretamente (completar tarefas, retentar incidentes) sem tocar no banco.
- Ferramentas em volta. Além do Craft e do Monitor, há uma extensão do VS
Code para editar
.kikwijunto do código e Agent Skills para modelar/documentar processos com um agente de IA.
Como diferentes pessoas no time olham para isso
Desenvolvedor:
"Quero escrever a lógica de negócio como código Java normal, com testes normais, e ainda ter resiliência e observabilidade de graça."
Arquiteto:
"Quero que processos de negócio sejam rastreáveis, versionados, e não dependam de infraestrutura adicional para rodar."
Time de sustentação:
"Quando algo para em produção, quero saber exatamente qual instância, em qual etapa, com quais variáveis — e quero poder recuperar sem mexer no banco."
CTO / Tech Lead:
"Quero que a engenharia alinhe intenção, execução e resultado — e que isso seja visível, não uma suposição."
Além do guia
- Motor de Execução — o funcionamento interno (
Navigator,ContinuationService,UnitOfWork, e o restante do módulokikwi-core). É para quem contribui com o motor; não é pré-requisito para usar o Kikwiflow em uma aplicação. - Referência da API REST — o contrato completo da API de gestão: definições, instâncias, busca avançada, tarefas externas, incidentes, correlação de eventos, histórico e estatísticas.
- Código-fonte: github.com/atoxfy/kikwiflow · Artefatos Maven: central.sonatype.com/namespace/io.kikwiflow
Próximo passo
Veja essas ideias funcionando em código real: o Início Rápido parte de um
problema concreto — a abertura de conta digital de uma fintech — e monta esse processo do desenho no
Craft até visível no Monitor. É o mesmo processo que o Guia do
Desenvolvedor faz crescer, capítulo a capítulo. Para montar
o pom.xml à mão ou entender a escolha de persistência, veja Instalação e
Setup. Se esbarrar num termo em inglês, o
Glossário reúne todos.