cadence

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 自动化工作流 🍴 复刻 929 🐛 待处理 221 👀 关注 1411
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 9546
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源项目,Apache-2.0许可证,可免费使用和部署,无付费版本。

项目预览

cadence 项目界面预览图
图片来源:项目官网

项目数据

分类自动化工作流
开发团队cadence-workflow
定价模式🏷️完全免费
价格说明开源项目,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 星标★ 9546
上线时间2017-02-21 00:00:00
代码更新2026-11-10
仓库体积93.9 MB
本站数据更新2026-11-10
维护状态活跃
收录时间2026-08-10
浏览次数4

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 9546

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:入门 约 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

上一篇:temporal

下一篇:flowgram.ai

同类项目推荐

JamTools 开源

一个软件搞定截屏、录屏、翻译、格式转换等日常杂活

JamTools是一个跨平台的小工具集类软件,支持Windows7/8/10/11、Macos、ubuntu系统(其他系···

★ 736 2026-08-09
starlight-llms-txt 开源

Starlight 文档一键生成 llms.txt,喂给大模型更省事

Generate llms.txt files to train large language models on your Starlight documentati···

★ 117 2026-09-15
nuphus-mcp 开源

让任意 AI 代理直接操作你的电脑屏幕和浏览器

Desktop automation MCP server — computer use for any AI agent: control screen, wind···

★ 332 2026-08-09
jenkins-cli 开源

在终端里像用 GitHub CLI 一样管理 Jenkins,快速查看运行和日志。

GitHub-style CLI for Jenkins — manage contexts, runs, logs, and admin tasks from yo···

★ 99 2026-08-09
wxpath 开源

用查询语言写爬虫,像查数据库一样抓网页数据

wxpath - declarative web crawling with XPath; a Web Query Language (WQL)

★ 110 2026-08-09
dsh-wechat 开源

在微信里直接指挥 DSH 智能体跑自动化任务

WeChat channel for DeepSeek Harness

★ 425 2026-11-06
Browser4 开源

让 AI 智能体自己开浏览器,自动抓数据、跑流程

Browser4 — an AI-native browser engine for autonomous agents, intelligent extractio···

★ 1179 2026-10-08