DBOS Transact: Lightweight Durable Workflows
DBOS provides lightweight durable workflows built 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.What Makes DBOS Different?
DBOS is entirely contained in an open-source Python library. There’s no additional infrastructure for you to configure or manage—just install the library, connect it to Postgres, and annotate your functions to make them durable.When Should I Use DBOS?
You should consider using DBOS if your application needs to reliably handle failures. For example:- Payments services that must reliably process transactions even if servers crash mid-operation
- Long-running data pipelines that need to resume seamlessly from checkpoints rather than restart from the beginning
- AI agents that orchestrate multiple unreliable API calls and need to track progress
- Background job processing that requires guaranteed execution and result delivery
Quickstart
Get up and running with DBOS in under 5 minutes
Installation
Detailed installation and setup instructions
Core Concepts
Learn about workflows, steps, and transactions
API Reference
Complete API documentation
Key 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 automatically resume from the last completed step. Workflows are particularly useful for:- Orchestrating business processes so they seamlessly recover from any failure
- Building observable and fault-tolerant data pipelines
- Operating an AI agent, or any application that relies on unreliable or non-deterministic APIs
Durable Queues
DBOS queues help you durably run tasks in the background. You can enqueue a task (which can be a single step or an entire workflow) from a durable workflow and one of your processes will pick it up for execution.Programmatic Workflow Management
Your workflows are stored as rows in a Postgres table, so you have full programmatic control over them. Write scripts to query workflow executions, batch pause or resume workflows, or even restart failed workflows from a specific step.Exactly-Once Event Processing
Use DBOS to build reliable webhooks, event listeners, or Kafka consumers by starting a workflow exactly-once in response to an event. Acknowledge the event immediately while reliably processing it in the background.Durable Scheduling
Schedule workflows using cron syntax, or use durable sleep to pause workflows for as long as you like (even days or weeks) before executing.Durable Notifications
Pause your workflow executions until a notification is received, or emit events from your workflow to send progress updates to external clients. All notifications are stored in Postgres with exactly-once semantics.Next Steps
Get Started with the Quickstart
Build your first durable workflow in minutes
Workflow Tutorial
Learn how to build with durable workflows and queues
Queue Tutorial
Learn how to use durable queues for background processing
Join Our Community
Get help and connect with other developers