Skip to content

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

License

Notifications You must be signed in to change notification settings

jerryyummy/cadence

Repository files navigation

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.

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:<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
    • Build the CLI image, see instructions
    • 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.

Community

  • Github Discussion
    • Best for Q&A, support/help, general discusion, and annoucement
  • StackOverflow
    • Best for Q&A and general discusion
  • Github Issues
    • Best for reporting bugs and feature requests
  • Slack
    • Best for contributing/development discussion

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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.6%
  • Other 0.4%