Skip to content

Java SDK for iwf workflow engine(simple & powerful workflow as code engine based on Cadence/Temporal)

License

Notifications You must be signed in to change notification settings

zklgame/iwf-java-sdk

 
 

Repository files navigation

iwf-java-sdk

Coverage Status Build status

Java SDK for iWF workflow engine

See samples for how to use this SDK to build your workflow.

Requirements

  • Java 1.8+

How to use

Here is the link to all the versions available to use. Also the Java docs for the latest version. For the latest version, MVN Repository website may have 1~2 days delay to show up.

Gradle

// https://mvnrepository.com/artifact/io.iworkflow/iwf-java-sdk
implementation 'io.iworkflow:iwf-java-sdk:2.2.+'

Maven

<!-- https://mvnrepository.com/artifact/io.iworkflow/iwf-java-sdk -->
<dependency>
    <groupId>io.iworkflow</groupId>
    <artifactId>iwf-java-sdk</artifactId>
    <version>2.2.+</version>
    <type>pom</type>
</dependency>

Concepts

To implement a workflow, the two most core interfaces are

A workflow can contain any number of WorkflowStates.

See more in https://github.com/indeedeng/iwf#what-is-iwf

How to build & run

Using IntelliJ

  1. Check out the idl submodule by running the command: git submodule update --init --recursive
  2. In "Build, Execution, Deployment" -> "Gradle", choose "wrapper task in Gradle build script" for "Use gradle from".
  3. Open Gradle tab, click "build" under "build" to build the project
  4. In the same Gradle tab, click "bootRun" under "application to run the project"
  5. Go to "script/http/local" folder, use the http script to invoke a REST API (you may need to install the HttpClient plugin for IntelliJ)

Development Guide

Update IDL

Run the command git submodule update --remote --merge to update IDL to the latest commit

Development Plan

1.0

  • Start workflow API
  • Executing start/decide APIs and completing workflow
  • Parallel execution of multiple states
  • Timer command
  • Signal command
  • SearchAttribute
  • DataAttribute
  • StateExecutionLocal
  • Signal workflow API
  • Get workflow DataAttributes/SearchAttributes API
  • Get workflow API
  • Search workflow API
  • Cancel workflow API
  • Reset workflow API
  • InternalChannel command
  • AnyCommandCompleted Decider trigger type
  • More workflow start options: IdReusePolicy, cron schedule, retry
  • StateOption: WaitUntil/Execute API timeout and retry policy
  • Reset workflow by stateId/StateExecutionId

1.1

  • New search attribute types: Double, Bool, Datetime, Keyword array, Text
  • Workflow start options: initial search attributes

1.2

  • Skip timer API for testing/operation
  • Decider trigger type: any command combination

1.3

  • Support failing workflow with results
  • Improve workflow uncompleted error return(canceled, failed, timeout, terminated)

1.4

  • Support PROCEED_ON_FAILURE for WaitUntilApiFailurePolicy

2.0

  • Renaming some concepts/APIs with breaking changes(see releaste notes)
  • Support workflow RPC

2.1

  • Support caching on persistence

2.2

  • Support atomic conditional complete workflow by checking signal/internal channel emptiness

About

Java SDK for iwf workflow engine(simple & powerful workflow as code engine based on Cadence/Temporal)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.5%
  • Shell 0.5%