Skip to main content

dbos-golang

DBOS Go SDK for building reliable, fault-tolerant applications with durable workflows. Use this skill when writing Go code with DBOS, creating workflows and steps, using queues, using the DBOS Clie...

跳到安装

来源信息

仓库
Zidong-LLC/BIBLIOTECA
最近来源活动
2026年3月11日 13:02
检测到的 SKILL.md 语言
英语
星标
36
分支
22

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
33 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
dbos-golang
description
DBOS Go SDK for building reliable, fault-tolerant applications with durable workflows. Use this skill when writing Go code with DBOS, creating workflows and steps, using queues, using the DBOS Clie...
risk
safe
source
https://docs.dbos.dev/
date_added
2026-02-27
# DBOS Go Best Practices Guide for building reliable, fault-tolerant Go applications with DBOS durable workflows. ## When to Use Reference these guidelines when: - Adding DBOS to existing Go code - Creating workflows and steps - Using queues for concurrency control - Implementing workflow communication (events, messages, streams) - Configuring and launching DBOS applications - Using the DBOS Client from external applications - Testing DBOS applications ## Rule Categories by Priority | Priority | Category | Impact | Prefix | |----------|----------|--------|--------| | 1 | Lifecycle | CRITICAL | `lifecycle-` | | 2 | Workflow | CRITICAL | `workflow-` | | 3 | Step | HIGH | `step-` | | 4 | Queue | HIGH | `queue-` | | 5 | Communication | MEDIUM | `comm-` | | 6 | Pattern | MEDIUM | `pattern-` | | 7 | Testing | LOW-MEDIUM | `test-` | | 8 | Client | MEDIUM | `client-` | | 9 | Advanced | LOW | `advanced-` | ## Critical Rules ### Installation Install the DBOS Go module: ```bash go get github.com/dbos-inc/dbos-transact-golang/dbos@latest ``` ### DBOS Configuration and Launch A DBOS application MUST create a context, register workflows, and launch before running any workflows: ```go package main import ( "context" "log" "os" "time" "github.com/dbos-inc/dbos-transact-golang/dbos" ) func main() { ctx, err := dbos.NewDBOSContext(context.Background(), dbos.Config{ AppName: "my-app", DatabaseURL: os.Getenv("DBOS_SYSTEM_DATABASE_URL"), }) if err != nil { log.Fatal(err) } defer dbos.Shutdown(ctx, 30*time.Second) dbos.RegisterWorkflow(ctx, myWorkflow) if err := dbos.Launch(ctx); err != nil { log.Fatal(err) } } ``` ### Workflow and Step Structure Workflows are comprised of steps. Any function performing complex operations or accessing external services must be run as a step using `dbos.RunAsStep`: ```go func fetchData(ctx context.Context) (string, error) { resp, err := http.Get("https://api.example.com/data") if err != nil { return "", err } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) return string(body), nil } func myWorkflow(ctx dbos.DBOSContext, input string) (string, error) { result, err := dbos.RunAsStep(ctx, fetchData, dbos.WithStepName("fetchData")) if err != nil { return "", err } return result, nil } ``` ### Key Constraints - Do NOT start or enqueue workflows from within steps - Do NOT use uncontrolled goroutines to start workflows - use `dbos.RunWorkflow` with queues or `dbos.Go`/`dbos.Select` for concurrent steps - Workflows MUST be deterministic - non-deterministic operations go in steps - Do NOT modify global variables from workflows or steps - All workflows and queues MUST be registered before calling `Launch()` ## How to Use Read individual rule files for detailed explanations and examples: ``` references/lifecycle-config.md references/workflow-determinism.md references/queue-concurrency.md ``` ## References - https://docs.dbos.dev/ - https://github.com/dbos-inc/dbos-transact-golang
在 GitHub 查看