Cadence:优步Uber的开源工作流程编排引擎

19-04-24 banq
         

Cadence是一种分布式,可扩展,持久且高度可用的编排引擎,可以以可伸缩和弹性的方式执行异步长期运行的业务逻辑。

业务逻辑被建模为工作流和活动。工作流程是协调逻辑的实现。其唯一目的是协调活动执行。活动是业务逻辑中特定任务的实现。工作流和活动的实现是在工作流程中托管和执行。这些执行者会长期轮询Cadence服务器以执行任务,通过调用工作流或活动实现来执行任务,并将任务结果返回给Cadence服务器。此外,工作人员可以实现为完全无状态的服务,这反过来允许无限制的水平扩展。

Cadence服务器能代理并持久保存在工作流执行期间生成的任务和事件,这为工作流执行提供了某些可伸缩性和可靠性保证。单个活动执行不具有容错能力,因为它可能由于各种原因而失败。但是,确定在哪种顺序以及如何(位置,输入参数,超时等)活动被执行的工作流程保证在各种故障条件下继续执行。

此repo包含Cadence服务器的源代码。要实现工作流,活动和工作人员使用Go客户端Java客户端

点击标题进入Github项目。