Skip to content
/ iwf Public

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

License

Notifications You must be signed in to change notification settings

indeedeng/iwf

Repository files navigation

iWF project - main & server repo

Slack Status Go Reference Go Report Card Coverage Status Static Badge for Temporal Code Exchange

Build status Build status

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.
  • 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

Basic concepts

See more in iWF wiki.

How to use

As a coding framework, iWF provides three SDKs to use with:

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:

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:

Production

Check the wiki.

Support

Join our Slack channel! Slack Status

You can also post in our Discussion, or raise an issue.

Contributing

Check out our CONTRIBUTING page.

Posts & Articles & Reference