Awesome
iWF project - main & server repo
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
Use case study/examples
- 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
Basic concepts
See more in iWF wiki.
How to use
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 a server to run against. See below options to run the server locally. See iWF wiki for production
Using all-in-one docker image
This is the simplest option to run the server locally for development.
Run the docker command to start the container for:
- IWF service: http://localhost:8801/
- Temporal WebUI: http://localhost:8233/
- Temporal service: localhost:7233
docker pull iworkflowio/iwf-server-lite:latest && 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:latest
Using docker image & docker-compose
This option runs Temporal in separate container with slightly more power (more search attributes allowed).
Checkout this repo, and run:
docker pull iworkflowio/iwf-server:latest && docker-compose -f ./docker-compose/docker-compose.yml up
This by default will run Temporal server with it, again:
- IWF service: http://localhost:8801/
- Temporal WebUI: http://localhost:8233/
- Temporal service: localhost:7233
Support
You can also post in our Discussion, or raise an issue.
Contributing
Check out our CONTRIBUTING page.
Posts & Articles & Reference
- 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