# uber/cadence

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/uber-cadence).**

9,336 stars · 897 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/uber/cadence
- Homepage: https://cadenceworkflow.io
- awesome-repositories: https://awesome-repositories.com/repository/uber-cadence.md

## Description

Cadence is a distributed workflow orchestration engine designed to execute long-running, asynchronous business logic with built-in durability and resilience across distributed systems. It functions as a stateful process manager that ensures processes resume from their last known state following system crashes or network outages.

The platform utilizes a distributed task queue to manage work across independent worker nodes and supports persistence via SQL or Cassandra backend storage. It includes a workflow visualization dashboard for inspecting execution histories and state traces, alongside a command-line interface for administrative control of workflows, task lists, and domains.

The system covers asynchronous task scheduling, fault-tolerant process execution, and distributed system debugging. It also provides utilities for managing database schema setup and upgrades.

## Tags

### Software Engineering & Architecture

- [Durable Workflow Engines](https://awesome-repositories.com/f/software-engineering-architecture/durable-workflow-engines.md) — Provides a platform for building long-running, fault-tolerant business processes that persist state across infrastructure failures. ([source](https://github.com/uber/cadence#readme))
- [Workflow Determinism](https://awesome-repositories.com/f/software-engineering-architecture/concurrency-schedulers/deterministic-runners/workflow-determinism.md) — Enforces deterministic workflow execution to ensure that replaying history always reconstructs the correct state.
- [Distributed Orchestration Platforms](https://awesome-repositories.com/f/software-engineering-architecture/distributed-orchestration-platforms.md) — Acts as a distributed orchestration platform managing long-running asynchronous processes with built-in durability.
- [Distributed Task Queues](https://awesome-repositories.com/f/software-engineering-architecture/distributed-task-queues.md) — Provides distributed task queues for scalable distribution of work across multiple remote worker nodes.
- [Durable Execution Persistence](https://awesome-repositories.com/f/software-engineering-architecture/durable-execution-persistence.md) — Implements a persistence layer that saves workflow state to ensure recoverability after system failures.
- [Fault-Tolerant Workflow Execution](https://awesome-repositories.com/f/software-engineering-architecture/fault-tolerant-workflow-execution.md) — Implements architectural patterns for resilient workflow execution that survives system crashes by resuming from the last state.
- [Event History Replayers](https://awesome-repositories.com/f/software-engineering-architecture/missed-execution-handlers/event-history-replayers.md) — Uses event history replay mechanisms to reconstruct and resume workflow state from a durable log.
- [Asynchronous Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers.md) — Coordinates a series of dependent asynchronous tasks that run over extended periods across remote workers.

### Data & Databases

- [Persistent Storage Backends](https://awesome-repositories.com/f/data-databases/persistent-storage-backends.md) — Provides a persistent storage backend using SQL or Cassandra to maintain workflow history and state.
- [State Management Systems](https://awesome-repositories.com/f/data-databases/state-management-systems.md) — Functions as a state management system that tracks execution state to ensure processes resume exactly where they left off.
- [State Inspection Interfaces](https://awesome-repositories.com/f/data-databases/application-state-management/state-inspection-interfaces.md) — Provides a visual state inspection interface to analyze workflow histories and execution traces for debugging. ([source](https://github.com/uber/cadence#readme))

### Development Tools & Productivity

- [Distributed Debugging](https://awesome-repositories.com/f/development-tools-productivity/distributed-debugging.md) — Provides tools for visualizing execution histories and state traces to debug long-running distributed processes.

### DevOps & Infrastructure

- [Polling-Based Worker Execution](https://awesome-repositories.com/f/devops-infrastructure/polling-based-worker-execution.md) — Employs a polling-based execution model where remote workers discover pending tasks from the orchestrator.
- [Timer-Driven Wakeups](https://awesome-repositories.com/f/devops-infrastructure/timer-driven-wakeups.md) — Uses a centralized timer service to trigger workflow resumes after specified delays or timeout intervals.

### System Administration & Monitoring

- [Workflow Management Dashboards](https://awesome-repositories.com/f/system-administration-monitoring/pipeline-monitoring-dashboards/workflow-management-dashboards.md) — Ships a web-based management dashboard for monitoring execution histories and the state of distributed processes.

### Part of an Awesome List

- [General Purpose Orchestration](https://awesome-repositories.com/f/awesome-lists/devtools/general-purpose-orchestration.md) — Orchestration engine for executing long-running asynchronous business logic.
