Pular para o conteúdo principal

Instalação e Setup

O projeto do Início Rápido já vem com todos esses starters configurados pelo Initializr do Craft. Esta página é a referência para quando você precisa montar o pom.xml à mão — integrar o Kikwiflow a uma aplicação Spring Boot que já existe, ou entender o que cada starter traz.

Pré-requisitos

  • JDK 21 — o Kikwiflow é construído sobre recursos modernos de Java (records, sealed interfaces, threads virtuais) e não suporta versões anteriores.
  • Maven — não há wrapper (mvnw) no próprio Kikwiflow; use uma instalação de mvn no seu ambiente ou o wrapper do seu próprio projeto.
  • Spring Boot — os módulos *-spring-boot-starter assumem uma aplicação Spring Boot já configurada.

Todos os artefatos do Kikwiflow são publicados no Maven Central, sob o namespace io.kikwiflow. O código-fonte está em github.com/atoxfy/kikwiflow.

Escolhendo a persistência

O Kikwiflow separa o motor de execução da forma como o estado é persistido. Duas opções prontas:

StarterUso recomendado
kikwi-in-memory-spring-boot-starterPrototipagem local, testes de integração, demos — nenhum dado sobrevive a um restart da aplicação.
kikwi-runtime-persistence-mongodb-spring-boot-starterProdução — persistência real em MongoDB, com commitWork transacional.

Ambos expõem o mesmo contrato (KikwiEngineRepository) — trocar de um para o outro depois é uma troca de dependência, não uma reescrita de handlers ou de definições de processo.

Setup mínimo (in-memory, para começar rápido)

<dependency>
<groupId>io.kikwiflow</groupId>
<artifactId>kikwi-spring-boot-starter</artifactId>
<version>${kikwiflow.version}</version>
</dependency>
<dependency>
<groupId>io.kikwiflow</groupId>
<artifactId>kikwi-in-memory-spring-boot-starter</artifactId>
<version>${kikwiflow.version}</version>
</dependency>

Isso é suficiente para subir a aplicação sem precisar de infraestrutura externa.

Setup de produção (MongoDB)

<dependency>
<groupId>io.kikwiflow</groupId>
<artifactId>kikwi-spring-boot-starter</artifactId>
<version>${kikwiflow.version}</version>
</dependency>
<dependency>
<groupId>io.kikwiflow</groupId>
<artifactId>kikwi-runtime-persistence-mongodb-spring-boot-starter</artifactId>
<version>${kikwiflow.version}</version>
</dependency>

Configure a conexão com o Mongo normalmente, via spring.data.mongodb.* (propriedades padrão do Spring Boot). É essa a combinação que o Início Rápido usa, com o Mongo subindo local via docker-compose.

API REST de gestão (opcional)

Se você quer expor os endpoints de consulta e operação (buscar instâncias, completar tarefas externas, retry de incidentes) descritos em Operando via REST, adicione também:

<dependency>
<groupId>io.kikwiflow</groupId>
<artifactId>kikwi-management-rest-spring-boot-starter</artifactId>
<version>${kikwiflow.version}</version>
</dependency>
<dependency>
<groupId>io.kikwiflow</groupId>
<artifactId>kikwi-runtime-query-spring-boot-starter</artifactId>
<version>${kikwiflow.version}</version>
</dependency>

Monitor embarcado (opcional)

Com a API REST de gestão no ar, você pode servir a interface do Kikwiflow Monitor pelo próprio processo da aplicação, em /monitor-ui/, adicionando:

<dependency>
<groupId>io.kikwiflow</groupId>
<artifactId>kikwi-monitor-spring-boot-starter</artifactId>
<version>${kikwiflow.version}</version>
</dependency>

Configuração e ressalvas em kikwiflow.monitor-ui.*.

application.yml mínimo

spring:
application:
name: minha-aplicacao

kikwiflow:
process-definition:
auto-deploy:
enabled: true
path: "classpath*:processes/**/*.kikwi" # default
security:
deploy-enabled: true # default: false — SEM isto, nenhum processo é implantado

process-definition.auto-deploy.path já vem com esse valor como default — só declare explicitamente se quiser um caminho diferente. security.deploy-enabled precisa ser true para qualquer deploy acontecer (o auto-deploy do classpath incluído); o default é false, de propósito. Veja Configuração Essencial para as demais propriedades relevantes no dia a dia.

Modelando com o Craft

Você não precisa escrever o JSON de um processo à mão. O Kikwiflow Craft, disponível em craft.kikwiflow.io, é o editor visual onde o processo é desenhado como um fluxo e exportado como um arquivo .kikwi (JSON) pronto para colocar em src/main/resources/processes/. O Craft também gera, pelo Initializr do Hub de Exportação, um projeto Spring Boot completo já com esses starters, docker-compose.yml e os stubs de bean — é por aí que o Início Rápido começa.

Próximo passo

Se você ainda não montou um processo do zero, o Início Rápido faz isso do desenho no Craft até visível no Monitor. Se o projeto já está de pé, siga para Anatomia de um Processo — o formato do arquivo .kikwi e o catálogo de tipos de nó.