使用时间工作流引擎构建容错应用程序

主要观点:工作流和编排对于大多数软件系统至关重要,每段软件本质上都是一个工作流,包含函数执行顺序、状态管理等。Temporal 是一款能处理软件开发编排方面的工作流引擎,可让开发者专注于核心业务逻辑。
关键信息

  • Temporal 可管理工作流编排,帮助按特定顺序执行函数、跟踪状态等。
  • 示例演示了通过 Temporal orchestrate 简单工作流,如用户注册流程,包含验证邮箱等步骤。
  • 需安装 Docker、Go、Express.js 等环境,使用 Docker Compose 运行 Temporal 服务器及相关服务。
  • 项目结构包括 Go 代码的不同文件,如activities.goworkflows.go等,分别定义活动和工作流。
  • Temporal 活动可自动重试,具有容错性和持久性,工作流从开始到结束运行一次且确定性强,非确定性内容应在活动中。
  • 注册工作流和活动到 Temporal 后创建 worker 监听任务队列,通过触发执行工作流并可观察其运行及重试情况。
    重要细节
  • Docker Compose 文件配置了 Temporal 服务器、Postgres 数据库及 Temporal UI 的相关参数和依赖。
  • index.js文件包含模拟 API 代码,对应系统要编排的函数。
  • Go 代码中activities.go的函数用于调用模拟 API,workflows.go定义工作流的执行序列及活动调用。
  • main.go中注册工作流和活动,并创建 worker 监听任务队列,executerWorkflow.go用于触发执行工作流。
  • 可通过 Temporal UI 查看工作流运行细节及活动状态,模拟失败时 Temporal 会自动重试。
  • 所有代码可在https://github.com/justramesh2000/temporal-go-demo获取。
阅读 41
0 条评论