Add three DBOS SDK skills with reference documentation for building reliable, fault-tolerant applications with durable workflows. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
title, impact, impactDescription, tags
| title | impact | impactDescription | tags |
|---|---|---|---|
| Configure and Launch DBOS Properly | CRITICAL | Application won't function without proper setup | configuration, launch, setup, initialization |
Configure and Launch DBOS Properly
Every DBOS application must create a context, register workflows and queues, then launch before running any workflows.
Incorrect (missing configuration or launch):
// No context or launch!
func myWorkflow(ctx dbos.DBOSContext, input string) (string, error) {
return input, nil
}
func main() {
// This will fail - DBOS is not initialized or launched
dbos.RegisterWorkflow(nil, myWorkflow) // panic: ctx cannot be nil
}
Correct (create context, register, launch):
func myWorkflow(ctx dbos.DBOSContext, input string) (string, error) {
return input, nil
}
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)
}
handle, err := dbos.RunWorkflow(ctx, myWorkflow, "hello")
if err != nil {
log.Fatal(err)
}
result, err := handle.GetResult()
fmt.Println(result) // "hello"
}
Config fields:
AppName(required): Application identifierDatabaseURL(required unlessSystemDBPoolis set): PostgreSQL connection stringSystemDBPool: Custom*pgxpool.Pool(takes precedence overDatabaseURL)DatabaseSchema: Schema name (default:"dbos")Logger: Custom*slog.Logger(defaults to stdout)AdminServer: Enable HTTP admin server (default:false)AdminServerPort: Admin server port (default:3001)ApplicationVersion: App version (auto-computed from binary hash if not set)ExecutorID: Executor identifier (default:"local")EnablePatching: Enable code patching system (default:false)
Reference: Integrating DBOS