cadence

让长时业务流程像写普通代码一样简单可靠,崩溃自动恢复

Cadence 是 Uber 开源的分布式、可扩展、持久且高可用的工作流编排引擎,用于以弹性方式执行异步长时运行的业务逻辑。它解决的是在微服务架构中,跨服务协调复杂业务流程(如订单处理、数据管道、金融交易)时面临的可靠性、可观测性和恢复难题。核心能力包括:将工作流代码写成普通程序,由引擎管理状态与执行;提供持久执行,进程崩溃或机器故障后自动恢复;内置定时器、信号、子工作流等原语,支持超时、重试和取消;客户端支持 Go 和 Java,提供多语言 SDK;具备水平扩展能力,可处理大规模工作负载。Cadence 强调确定性执行,确保工作流在不同环境下结果一致,并通过历史事件记录实现完整审计。它适用于需要长期运行、状态复杂且要求高可靠性的业务场景,是微服务编排领域的成熟解决方案。

开源 free 自动化工作流
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 9447
维护状态 活跃
是否开源 是
定价模式 free

项目数据

分类自动化工作流
开发团队cadence-workflow
所属国家
定价模式free
价格说明开源项目,Apache-2.0许可证,可免费使用和部署,无付费版本。
访问状态
是否开源是
开源协议Apache-2.0
主要语言Go
技术栈/模型cadence,distributed-systems,golang,java,orchestration-engine,service-bus,service-fabric,services-platform,uber,workflow-automation,workflows
GitHub 星标★ 9447
30天Star增速
HF 下载量
上线时间2017-02-21 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-10
浏览次数3

使用教程

难度:入门 约 10 分钟 部署方式:Docker 5 步

环境要求

  • 已安装 Docker 与 Docker Compose(docker compose 子命令)
  • 能访问 Docker Hub 拉取镜像,首次启动耗时较长
  • 磁盘与内存足够运行多个后端服务及数据库(Cassandra/MySQL/PostgreSQL 之一)
  • 如需运行工作流,需自行准备包含工作流实现的 worker(Go 或 Java SDK)

安装与启动步骤

  1. 1获取 Cadence 源码

    README 中的 compose 文件路径为 docker/docker-compose.yml,需先进入仓库根目录再执行后续命令。

    git clone https://github.com/cadence-workflow/cadence.git
    cd cadence
  2. 2启动后端组件

    一条命令拉起 Cadence 各后端服务及其依赖数据库,首次运行需拉取镜像,请耐心等待并保持终端不关闭。

    docker compose -f docker/docker-compose.yml up
  3. 3访问 Web UI 验证

    在浏览器打开 Web UI 地址,可查看工作流历史与详细调用链;看不到页面说明容器尚未就绪。

  4. 4运行官方示例

    README 提供 Go 与 Java 两个示例仓库,按其中说明编写并运行 worker,再通过 SDK 或 CLI 触发工作流。

  5. 5Kubernetes 生产部署

    官方提供 cadence-charts Helm Chart,可在 KubeStellar Console 按引导任务完成安装、校验与回滚。

如何确认成功

浏览器访问 http://localhost:8088,能打开 Cadence Web UI 并查看工作流历史,即表示后端启动成功。

常见问题

Q:执行 docker compose 命令提示找不到文件怎么办?

A:该命令使用相对路径 docker/docker-compose.yml,必须在克隆下来的 cadence 仓库根目录下执行。

Q:打开 http://localhost:8088 无响应?

A:首次启动要拉取镜像并初始化数据库,耗时较长;可先确认所有容器已启动完成,端口未被占用后再重试。

Q:启动后端后就能直接跑业务逻辑了吗?

A:还不能。Cadence 后端只负责编排,需要再部署包含你工作流实现的 worker,然后用 Go/Java SDK 或 CLI 触发。

Q:生产环境怎么部署?

A:可使用官方 Helm chart(cadence-charts)部署到 Kubernetes,或用 KubeStellar Console 的安装任务按步骤执行。

注意事项

  • 所有命令须在克隆后的 cadence 仓库根目录执行,路径 docker/docker-compose.yml 是相对路径。
  • README 未给出数据库、Kafka、Elasticsearch 的具体配置项,生产参数请查阅官网 https://cadenceworkflow.io。
  • 示例代码在独立的 cadence-samples(Go)与 cadence-java-samples(Java)仓库中,本仓库仅含核心引擎与 CLI、schema 管理、benchmark、canary 等工具。

核心亮点

  • 持久执行引擎,工作流状态自动持久化,进程崩溃后无缝恢复
  • 支持 Go/Java 多语言客户端,提供信号、定时器、子工作流等丰富原语
  • 高可用和水平扩展设计,经 Uber 大规模生产环境验证

不足之处

  • 部署和运维复杂度较高,需要依赖 Cassandra/MySQL 等外部存储
  • 学习曲线陡峭,工作流代码需遵循确定性约束,调试相对困难

适用场景

  • 微服务间跨服务业务流程编排,如订单履约、库存协调
  • 数据管道和 ETL 任务调度,需长时运行和失败重试
  • 金融交易、风控等对可靠性和审计要求高的领域

替代项目

Temporal、Conductor (Netflix)、Argo Workflows

项目介绍

cadence 是自动化工作流领域的开源项目,由 cadence-workflow 开发,2017 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(9,447)位列前 6%,在自动化工作流分类的 503 个项目里位列前 11%。

近 44 天,它的 GitHub 星标从 9,399 增加到 9,447,净增 48。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。Apache-2.0许可证,可免费使用和部署,无付费版本。

它主要面向的使用场景是:微服务间跨服务业务流程编排,如订单履约、库存协调。同类可对比的替代方案包括 Temporal、Conductor (Netflix)、Argo Workflows。

上一篇:temporal

下一篇:flowgram.ai

同类项目推荐

n8n 开源

拖拽搭建自动化流程,轻松接入 AI 与 400+ 应用,搞定重复工作。

Fair-code workflow automation platform with native AI capabilities. Combine visual b···

★ 205700 2026-08-10
feishu-docx 开源

让 AI 代理轻松读写飞书文档,双向转换 Markdown

Feishu/Lark Docs、Sheet、Bitable <-> Markdown | AI Agent-friendly knowledge base exp···

★ 262 2026-08-09
robotcode 开源

让 Robot Framework 拥有现代 IDE 体验,调试、补全、运行一气呵成。

Open Source Toolkit for Robot Framework, providing Language Server Protocol support,···

★ 301 2026-08-10
puppeteer 开源

用 JavaScript 轻松操控无头浏览器,搞定自动化测试与网页抓取。

JavaScript API for Chrome and Firefox

★ 95609 2026-08-10