What is DBOS? DBOS provides lightweight durable workflow orchestration on top of Postgres. Instead of managing your own workflow orchestrator or task queue system, you can use DBOS to add durable workflows and queues to your program in just a few lines of code. When Should I Use DBOS? You should consider using DBOS if your application needs to reliably handle failures. For example, you might be building a payments service that must reliably process transactions even if servers crash mid-operation, or a long-running data pipeline that needs to resume seamlessly from checkpoints rather than restart from the beginning when interrupted. Handling failures is costly and complicated, requiring complex state management and recovery logic as well as heavyweight tools like external orchestration services. DBOS makes it simpler: annotate your code to checkpoint it in Postgres and automatically recover from any failure. DBOS also provides powerful Postgres-backed primitives that makes it easier to write and operate reliable code, including durable queues, notifications, scheduling, event processing, and programmatic workflow management. Features 馃捑 Durable Workflows DBOS workflows make your program durable by checkpointing its state in Postgres. If your program ever fails, when it restarts all your workflows will automatically resume from the last completed step. You add durable workflows to your existing Golang program by registering ordinary functions as workflows or running them as steps: package main import ( "context" "fmt" "os" "time" "github.com/dbos-inc/dbos-transact-golang/dbos" ) func workflow ( dbosCtx dbos. DBOSContext , _ string ) ( string , error ) { _ , err := dbos . RunAsStep ( dbosCtx , stepOne ) if err != nil { return "" , err } return dbos . RunAsStep ( dbosCtx , stepTwo ) } func stepOne ( ctx context. Context ) ( string , error ) { fmt . Println ( "Step one completed!" ) return "Step 1 completed" , nil } func stepTwo ( ctx context. Context ) ( string , error ...
First seen: 2025-10-03 02:51
Last seen: 2025-10-03 13:52