iWF will make you a 10x developer!
iWF is an API orchestration platform for building resilient, fault-tolerant, scalable long-running applications. It offers an orchestration coding framework with abstractions for durable timers, async/background execution with backoff retry, KV storage, RPC, and message queues. You will build long-running reliable processes faster than ever.
What is iWF
- SAGA pattern
- User sign-up/registry in Python/Java
- Abstracted microservice orchestration in Java/Golang
- Employer & JobSeeker engagement in Java or Golang
- Subscription Workflow in Java or Golang
As a coding framework, iWF provides three SDKs to use with:
- iWF Java SDK and samples
- iWF Golang SDK and samples
- iWF Python SDK and samples
The iWF SDKs required to run with the server:
Run the docker command to start the container for:
- IWF service: http://localhost:8801/
- Temporal WebUI: http://localhost:8233/
- Temporal service: localhost:7233
docker run -p 8801:8801 -p 7233:7233 -p 8233:8233 -e AUTO_FIX_WORKER_URL=host.docker.internal --add-host host.docker.internal:host-gateway -it iworkflowio/iwf-server-lite:latestTo update the server version, use docker pull iworkflowio/iwf-server-lite:latest to get the latest image. Or change latest to specify a version tag.
This is the simpler(preferred) option to run the server locally for development.
Checkout this repo, go to the docker-compose folder and run it:
cd docker-compose && docker-compose upThis by default will run Temporal server with it, again:
- IWF service: http://localhost:8801/
- Temporal WebUI: http://localhost:8233/
- Temporal service: localhost:7233
To update the server version, use docker pull iworkflowio/iwf-server:latest to get the latest image. Or update the docker-compose file to specify
a version tag.
- Run
make binsto build the binaryiwf-server - Make sure you have registered the system search attributes required by iWF server:
- Keyword: IwfWorkflowType
- Int: IwfGlobalWorkflowVersion
- Keyword: IwfExecutingStateIds
- See Contribution for more detailed commands.
- For Cadence without advancedVisibility enabled, set disableSystemSearchAttributes to true
- Then run
./iwf-server startto run the service . This defaults to serve workflows APIs with Temporal interpreter implementation. It requires to have local Temporal setup. See Run with local Temporal. - Alternatively, run
./iwf-server --config config/development_cadence.yaml startto run with local Cadence. See below instructions for setting up local Cadence.
You can also post in our Discussion, or raise an issue.
Check out our CONTRIBUTING page.
- Why I created Indeed Workflow Engine
- Durable Timers in Indeed Workflow Engine
- Cadence community spotlights
- iWF is an abstracted Temporal framework. Same for Cadence.
- How ContinueAsNew is built in iWF