/cadence

Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way.

Primary LanguageGoMIT LicenseMIT

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 Data@Scale 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.

Use CLI Tools

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

For manual setup or upgrading server schema --

  • 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: Run make tools to build all tools mentioned above.

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)

Cadence docs

If you have a suggestion or change you would like to make to cadenceworkflow.io you can visit Cadence Docs and raise an Issue or Pull Request there.

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 Cadence discussion group and 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.