Iwf
iWF is a Workflow-As-Code microservice orchestration platform offering an orchestration coding framework and service for building resilient, fault-tolerant, scalable long-running processes
Install / Use
/learn @indeedeng/IwfREADME
iWF project - main & server repo
What is iWF
Indeed Workflow Framework(iWF) is a coding framework with service to streamlines workflows that involve waiting on external events, handling timeouts, and persisting state over long durations. With iWF, developers can build scalable, maintainable workflows that adapt to real-time events and integrate seamlessly with external systems.
What Makes iWF Unique
- Workflow-As-Code uses native code to define everything: branching, looping, parallel threads, variables, schema etc.
- Structured Programming provides well-orginized structure to maintain workflow that is natural and easy to read.
- Durable Timer provides timer that is durable, resilient to system failure.
- Automatic Retry the background execution units(WorkflowState) are inherently resilient to failure, with built in distributed backoff retry using durable timer.
- Simplified Architecture iWF applications are all REST based micro-services which are easy to deploy, monitor, scale, maintain(version) and operate with industry standards.
- Simplicity and explicitness of APIs uses as few concepts as possible to model complex logic. It uses clear abstractions to defines workflows in terms of discrete states, with waitUntil conditions and execute actions, declarative schema for data and search attributes for persistence, and RPC for external interaction for both read and write.
- Dynamic Interactions allows external applications to interact with running workflows through RPC, signals, and internal channels.
- Extensive tooling provides tooling to look up running state definitions, skipping timers, enhanced resetting etc.
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
- Design Patterns
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
Production
Check the wiki.
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 Framework
- iWF on Temporal CodeExchange
- 14 “Modern” Backend Software Design Patterns with Indeed Workflow Framework(iWF) on Temporal
- iWF Overview for Temporal Users
- Build Reliable AI Agents with Indeed Workflow Framework on Temporal
- Cadence community spotlights
- iWF is an abstracted Temporal framework. Same for Cadence.
- How ContinueAsNew is built in iWF
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
xurl
344.1kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
claude-opus-4-5-migration
96.8kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
