Awesome Open Source
Awesome Open Source

Cadence

Build Status Coverage Status Slack Status

Visit cadenceworkflow.io to learn about Cadence.

This repo contains the source code of the Cadence server. To implement workflows, activities and worker use Go client or Java client.

See Maxim's talk at [email protected] Conference for an architectural overview of Cadence.

Getting Started

Start the cadence-server locally

We highly recommend that you use Cadence service docker to run the service.

Run the Samples

Try out the sample recipes for Go or Java to get started.

Client SDKs

Java and Golang clients are developed by Cadence team:

Other clients are developed by community:

Use CLI Tools

  • Use Cadence command-line tool to perform various tasks on Cadence server cluster

    • Use brew to install CLI: brew install cadence-workflow
    • Use docker image for CLI: docker run --rm ubercadence/cli:master. Be sure to update your image when you want to try new features: docker pull ubercadence/cli:master
    • Check out the repo and run make cadence to build all tools. See CONTRIBUTING for prerequisite of make command.
  • For manual setup or upgrading server schema --

    • Use brew to install CLI: brew install cadence-workflow which also includes cadence-sql-tool and cadence-cassandra-tool
    • If server runs with Cassandra, Use Cadence Cassandra tool to perform various tasks on database schema of Cassandra persistence
    • If server runs with SQL database, Use Cadence SQL tool to perform various tasks on database schema of SQL based persistence

Tips: Use make tools to build all tools

Use Cadence Web

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)

Documentation

Visit cadenceworkflow.io for documentation.

Join us in Cadence Docs project. Raise an Issue or Pull Request there.

Getting Help

Contributing

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 Slack channel to start a discussion and check if there are existing design discussions. Also peruse our design docs in case a feature has been designed but not yet implemented. Once you're sure the proposal is not covered elsewhere, please follow our proposal instructions.

License

MIT License, please see LICENSE for details.


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
java (31,735
go (15,340
golang (3,955
distributed-systems (302
uber (54
workflows (42
workflow-automation (22
service-bus (19