All Projects → uber → Cadence

uber / Cadence

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

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Cadence

Temporal
Temporal service
Stars: ✭ 3,212 (-41.83%)
Mutual labels:  workflows, service-bus, distributed-systems, service-fabric, workflow-automation
Zebus
A lightweight Peer to Peer Service Bus
Stars: ✭ 222 (-95.98%)
Mutual labels:  service-bus, distributed-systems
Dasync
Every developer deserves the right of creating microservices without using any framework 🤍
Stars: ✭ 154 (-97.21%)
Mutual labels:  workflows, distributed-systems
Titanoboa
Titanoboa makes complex workflows easy. It is a low-code workflow orchestration platform for JVM - distributed, highly scalable and fault tolerant.
Stars: ✭ 787 (-85.75%)
Mutual labels:  service-bus, distributed-systems
Conductor
Conductor is a microservices orchestration engine.
Stars: ✭ 3,759 (-31.93%)
Mutual labels:  distributed-systems, orchestration-engine
postier
Postier is a Laravel API automation platform to transfer data and to sync apps. You can build workflows with data and actions of multiple apps and apply logics to the data!
Stars: ✭ 55 (-99%)
Mutual labels:  workflows, workflow-automation
Cadence Web
Web UI for visualizing workflows on Cadence
Stars: ✭ 261 (-95.27%)
Mutual labels:  uber, workflows
Odin
A programmable, observable and distributed job orchestration system.
Stars: ✭ 405 (-92.67%)
Mutual labels:  workflows, distributed-systems
Elasticell
Elastic Key-Value Storage With Strong Consistency and Reliability
Stars: ✭ 453 (-91.8%)
Mutual labels:  distributed-systems
Ra
A Raft implementation for Erlang and Elixir that strives to be efficient and make it easier to use multiple Raft clusters in a single system.
Stars: ✭ 478 (-91.34%)
Mutual labels:  distributed-systems
Ergo
The management of multiple apps running over different ports made easy
Stars: ✭ 452 (-91.81%)
Mutual labels:  distributed-systems
Hazelcast
Open-source distributed computation and storage platform
Stars: ✭ 4,662 (-15.57%)
Mutual labels:  distributed-systems
Scalecube Services
ScaleCube Services is a high throughput, low latency reactive microservices library built to scale. it features: API-Gateways, service-discovery, service-load-balancing, the architecture supports plug-and-play service communication modules and features. built to provide performance and low-latency real-time stream-processing. its open and designed to accommodate changes. (no sidecar in a form of broker or any kind)
Stars: ✭ 482 (-91.27%)
Mutual labels:  distributed-systems
Dnpipes
Distributed Named Pipes
Stars: ✭ 452 (-91.81%)
Mutual labels:  distributed-systems
Kledex
.NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing.
Stars: ✭ 502 (-90.91%)
Mutual labels:  service-bus
Xgboost
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow
Stars: ✭ 22,017 (+298.71%)
Mutual labels:  distributed-systems
St2
StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, security responses, troubleshooting, deployments, and more. Includes rules engine, workflow, 160 integration packs with 6000+ actions (see https://exchange.stackstorm.org) and ChatOps. Installer at https://docs.stackstorm.com/install/index.html. Questions? https://…
Stars: ✭ 4,600 (-16.7%)
Mutual labels:  workflows
Awesome Distributed Systems
Awesome list of distributed systems resources
Stars: ✭ 512 (-90.73%)
Mutual labels:  distributed-systems
Maelstrom
A workbench for writing toy implementations of distributed systems.
Stars: ✭ 493 (-91.07%)
Mutual labels:  distributed-systems
Azure Service Bus
☁️ Azure Service Bus service issue tracking and samples
Stars: ✭ 472 (-91.45%)
Mutual labels:  service-bus

Cadence

Build Status Coverage Status Slack Status

This repo contains the source code of the Cadence server and other tooling including CLI, schema tools, bench and canary.

You can implement your workflows with one of our client libraries. The Go and Java libraries are officially maintained by the Cadence team, while the Python and Ruby client libraries are developed by the community.

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
  • StackOverflow
    • Best for Q&A and general discusion
  • Github Issues
    • Best for reporting bugs and feature requests
  • Slack
    • Best for contributing/development discussion

Getting Started

Start the cadence-server

To run Cadence services locally, we highly recommend that you use Cadence service docker to run the service. You can also follow the instructions to build and run it.

Please visit our documentation site for production/cluster setup.

Run the Samples

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

Use 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.

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)

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.

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.

License

MIT License, please see LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].