用途:该技能面向使用 DBOS Go SDK 构建可靠、容错 Go 应用的场景,提供持久化工作流的最佳实践与规则参考。
主要能力:按优先级组织规则,包括生命周期(CRITICAL)、工作流(CRITICAL)、步骤(HIGH)、队列(HIGH)、通信(MEDIUM)、模式(MEDIUM)、测试(LOW-MEDIUM)、客户端(MEDIUM)、高级(LOW)。覆盖向现有 Go 代码添加 DBOS、创建工作流与步骤、用队列控制并发、实现工作流通信(事件、消息、流)、配置与启动应用、从外部应用使用 DBOS Client、测试 DBOS 应用等。
必要用法:安装模块 go get github.com/dbos-inc/dbos-transact-golang/dbos@latest。应用必须先创建 context、注册工作流,再调用 Launch 才能运行工作流;示例中通过 dbos.NewContext 配置 AppName、ApplicationVersion、DatabaseURL,defer dbos.Shutdown,dbos.RegisterWorkflow,dbos.Launch。DatabaseURL 支持 Postgres/CockroachDB 或 SQLite(SQLite 需空白导入 driver/sqlite)。复杂操作或访问外部服务须用 dbos.RunAsStep 作为步骤运行。
限制:不得在步骤内启动或入队工作流;不得在步骤内调用 dbos.RunAsTransaction、handle.GetResult 或 dbos.CloseStream(读取、dbos.SetEvent、dbos.WriteStream 允许);不得用不受控 goroutine 启动工作流,应使用 dbos.RunWorkflow 配合队列或 dbos.Go/dbos.Select;工作流必须确定性,非确定性操作放入步骤;不得从工作流或步骤修改全局变量;所有工作流必须在 Launch 前注册。新建应用 ApplicationVersion 设为 0.1.0,修改现有应用时不要改动已配置版本。
适用场景:Go 语言下需要持久化、可恢复、容错的工作流编排与并发控制。更多细节见 references/lifecycle-config.md、references/workflow-determinism.md、references/queue-concurrency.md 及官方文档。