Skip to content

Sub workflow

Simple Workflow

Child workflow

1
2
3
4
5
6
7
@Bean
void childWorkflow() {
  return Workflow.builder("any child", () -> Integer.valueOf(0))
                 .next(s -> {})
                 .next(s -> {})
                 .build();
}

Parent Workflow fork a different workflkow

void parent(Workflow<Integer> childWorkflow) {
  return Workflow.builder("parent", () ->  new SimpleWorkflowState())
    .next(s -> {})
    .forkWorkflow(childWorkflow)
        // starting a new workflow may requirer a state mapping
        .function(s -> Integer.valueOf(2))
        .delay(Duration.ofMinutes(2))
        .build()
    .next(s -> {})
    .next(s -> {})
    .build();
}