返回排行榜

cadence-workflow/cadence

Gocadenceworkflow.io

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

ubercadenceworkflowsorchestration-engineworkflow-automationdistributed-systemsservice-busservice-fabricservices-platformgolangjava
Star 增长趋势
Star
9.4k
Forks
901
周增长
Issues
125
5k
2017年6月2020年6月2023年7月2026年7月
制品库Go Modulesgo get github.com/cadence-workflow/cadence
README

Cadence

Build Status Coverage Slack Status Github release License

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.

Getting Started

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.

  1. Start cadence backend components locally
docker compose -f docker/docker-compose.yml up
  1. Run the Samples

Try out the sample recipes for Go or Java.

  1. Visit UI

Visit http://localhost:8088 to check workflow histories and detailed traces.

Kubernetes Deployment

For a guided Kubernetes installation experience, KubeStellar Console provides a step-by-step mission that deploys Cadence using the official Helm chart from cadence-charts. The mission includes pre-flight checks, validation, troubleshooting, and rollback support.

Client Libraries

You can implement your workflows with one of our client libraries:

You can also use iWF as a DSL framework on top of Cadence.

CLI

Cadence CLI can be used to operate workflows, tasklist, domain and even the clusters.

You can use the following ways to install Cadence CLI:

  • Use brew to install CLI: brew install cadence-workflow
    • Follow the instructions if you need to install older versions of CLI via homebrew. Usually this is only needed when you are running a server of a too old version.
  • 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 binary yourself, check out the repo and run make cadence to build all tools. See CONTRIBUTING for prerequisite of make command.
  • Build the CLI image yourself, see instructions

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.

UI

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)

Other binaries in this repo

Bench/stress test workflow tools

See bench documentation.

Periodical feature health check workflow tools(aka Canary)

See canary documentation.

Schema tools for SQL and Cassandra

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.

  • The schema files are located at /usr/local/etc/cadence/schema/.
  • To upgrade, make sure you remove the old ElasticSearch schema first: 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.
  • Follow the instructions if you need to install older versions of schema tools via homebrew. However, easier way is to use new versions of schema tools with old versions of schemas. All you need is to check out the older version of schemas from this repo. Run git checkout v0.21.3 to get the v0.21.3 schemas in the schema folder.

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 CNCF Slack workspace in the #cadence-users channel to start a discussion.

Please visit our documentation site for production/cluster setup.

Learning Resources

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.

Community

  • Github Discussion
    • Best for Q&A, support/help, general discusion, and annoucement
  • Github Issues
    • Best for reporting bugs and feature requests
  • StackOverflow
    • Best for Q&A and general discusion
  • Slack - Join #cadence-users channel on CNCF Slack
    • Best for contributing/development discussion

Stars over time

Stargazers over time

License

Apache 2.0 License, please see LICENSE for details.

相关仓库
horovod/horovod

Distributed training framework for TensorFlow, Keras, PyTorch, and Apache MXNet.

PythonPyPIOthertensorflowuber
horovod.ai
14.7k2.2k
uber/react-vis

Data Visualization Components

JavaScriptnpmMIT Licenseuberchart
uber.github.io/react-vis
8.8k832
visgl/react-map-gl

React friendly API wrapper around MapboxGL JS

TypeScriptnpmOtherreactmap
visgl.github.io/react-map-gl/
8.5k1.4k
xxjwxc/uber_go_guide_cn

Uber Go 语言编码规范中文版. The Uber Go Style Guide .

Apache License 2.0ubergo
8.2k1.3k
uber/h3

Hexagonal hierarchical geospatial indexing system

CApache License 2.0spatial-indexinggeospatial
h3geo.org
6.4k596
ro31337/libretaxi

Open source Uber

GoGo ModulesGNU Affero General Public License v3.0telegramridesharing
t.me/libretaxi_bot
3.9k845
uber/AutoDispose

Automatic binding+disposal of RxJava streams.

JavaMavenApache License 2.0uberautodispose
uber.github.io/AutoDispose/
3.3k228
visgl/luma.gl

High-performance Toolkit for WebGL-based Data Visualization

TypeScriptnpmOtherwebgldata-visualization
luma.gl
2.5k227
uber-archive/makisu

Fast and flexible Docker image building tool, works in unprivileged containerized environments like Mesos and Kubernetes.

GoGo ModulesApache License 2.0dockerdocker-image
2.4k151
realabbas/big-companies-interview-questions

A curated list of previous asked Interview Question at Big Companies and Startups 🤲 🏆

Creative Commons Zero v1.0 Universalinterviewinterview-questions
realabbas.github.io/big-companies-interview-questions/
1.8k361
amitshekhariitbhu/ridesharing-uber-lyft-app

Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project

Kotlinuberlyft
outcomeschool.com
1.7k568
mohak1712/UberUX

Project that demonstrates the entire animation stack present in the Uber app (android)

JavaMavenOtheranimationandroid
1.2k287