README.md
Cadence Workflow is an open-source platform since 2017 for building and running scalable, fault-tolerant, and long-running workflows. This repository contains the core orchestration engine and tools including CLI, schema managment, benchmark and canary.
Cadence backend consists of multiple services, a database (Cassandra/MySQL/PostgreSQL) and optionally Kafka+Elasticsearch. As a user, you need a worker which contains your workflow implementation. Once you have Cadence backend and worker(s) running, you can trigger workflows by using SDKs or via CLI.
docker compose -f docker/docker-compose.yml up
Try out the sample recipes for Go or Java.
Visit http://localhost:8088 to check workflow histories and detailed traces.
You can implement your workflows with one of our client libraries:
You can also use iWF as a DSL framework on top of Cadence.
Cadence CLI can be used to operate workflows, tasklist, domain and even the clusters.
You can use the following ways to install Cadence CLI:
brew install cadence-workflow
docker run --rm ubercadence/cli:<releaseVersion> or docker run --rm ubercadence/cli:master . Be sure to update your image when you want to try new features: docker pull ubercadence/cli:master make cadence to build all tools. See CONTRIBUTING for prerequisite of make command.Cadence CLI is a powerful tool. The commands are organized by tabs. E.g. workflow->batch->start, or admin->workflow->describe.
Please read the documentation and always try out --help on any tab to learn & explore.
Try out Cadence Web UI to view your workflows on Cadence. (This is already available at localhost:8088 if you run Cadence with docker compose)
See bench documentation.
See canary documentation.
The tools are for manual setup or upgrading database schema
The easiest way to get the schema tool is via homebrew.
brew install cadence-workflow also includes cadence-sql-tool and cadence-cassandra-tool.
/usr/local/etc/cadence/schema/.mv /usr/local/etc/cadence/schema/elasticsearch /usr/local/etc/cadence/schema/elasticsearch.old && brew upgrade cadence-workflow. Otherwise ElasticSearch schemas may not be able to get updated.git checkout v0.21.3 to get the v0.21.3 schemas in the schema folder.We'd love your help in making Cadence great. Please review our contribution guide.
If you'd like to propose a new feature, first join the CNCF Slack workspace in the #cadence-users channel to start a discussion.
Please visit our documentation site for production/cluster setup.
See Maxim's talk at Data@Scale Conference for an architectural overview of Cadence.
Visit cadenceworkflow.io to learn more about Cadence. Join us in Cadence Documentation project. Feel free to raise an Issue or Pull Request there.
Apache 2.0 License, please see LICENSE for details.