强大的Go语言持久化任务框架:Durable Task Framework

强大的Go语言持久化任务框架:Durable Task Framework

durabletask-goThe Durable Task Framework is a lightweight, embeddable engine for writing durable, fault-tolerant business logic (orchestrations) as ordinary code.项目地址:https://gitcode.com/gh_mirrors/du/durabletask-go

在寻求构建可靠且容错的业务逻辑时,Durable Task Framework为Go开发者提供了一个轻量级、可嵌入的引擎。这个引擎允许你以普通代码形式编写持久化的流程(编排),并自带gRPC接口支持多语言SDK。目前已有.NET和Java的SDK,而直接在Go中编写编排并在本地进程中运行也是完全可能的。

框架概述

Durable Task Framework源自微软的.NET版本,已被广泛用于构建云服务的可靠控制平面和基础设施管理。它借鉴了Go Workflows项目的设计,并针对sidecar架构进行了优化,目标是成为Dapr内置的工作流引擎基础。

该框架目前还处于开发初期阶段,不适合生产环境使用。API表面尚未稳定,但已包含了基本的SQLite存储提供者,并提供了创建独立gRPC sidecar的示例代码。

技术剖析

该框架提供了灵活的存储提供商扩展机制,例如,SQLite存储提供者将应用状态持久化到磁盘。此外,通过实现Backend接口,可以轻松创建自定义的存储解决方案。

核心组件包括:

  1. SQLite Backend:将状态存储在SQLite数据库中。
  2. gRPC Executor:支持其他语言SDK与Go进程通信。
  3. TaskHubWorker:组合BackendExecutor,负责处理工作项。

应用场景

Durable Task Framework适用于需要以下特性的场景:

  1. 分布式协调:在多节点环境中,协调复杂的工作流程。
  2. 容错处理:确保即使在故障情况下也能恢复执行。
  3. 长期运行的流程:处理需要长时间运行或等待外部事件的任务。
  4. 跨语言协作:利用多个SDK在不同编程环境中编写和调用编排。

特色亮点

  1. 灵活性:易于集成,支持多种语言编写编排。
  2. 轻量化:设计为可嵌入到Go应用程序中的sidecar架构。
  3. 持久化:通过存储提供者确保工作流状态的持久化。
  4. 多语言支持:现有.NET和Java SDK,未来还将添加更多。
  5. 异步输入:能够处理来自外部系统的事件,如等待用户批准或系统信号。

开始使用

要启动一个独立的gRPC sidecar,请参考main.go文件中的示例。一旦配置好,可以用任何支持gRPC的SDK创建和交互编排。对于Go语言,可以直接在本地进程中编写和运行编排,享受到与Go语言紧密集成的好处。

立即加入Durable Task Framework的社区,探索如何利用其强大的功能来提升你的软件工程实践吧!


请注意: 文档提到的示例代码和项目链接位于原始readme中,具体细节请查阅项目源码仓库。由于该项目仍在发展,建议定期检查更新以获取最新信息和指南。

durabletask-goThe Durable Task Framework is a lightweight, embeddable engine for writing durable, fault-tolerant business logic (orchestrations) as ordinary code.项目地址:https://gitcode.com/gh_mirrors/du/durabletask-go

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任澄翊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值