dbos-python▌
dbos-inc/agent-skills · updated Apr 8, 2026
Guide for building reliable, fault-tolerant Python applications with DBOS durable workflows.
DBOS Python Best Practices
Guide for building reliable, fault-tolerant Python applications with DBOS durable workflows.
When to Apply
Reference these guidelines when:
- Adding DBOS to existing Python code
- Creating workflows and steps
- Using queues for concurrency control
- Implementing workflow communication (events, messages, streams)
- Configuring and launching DBOS applications
- Using DBOSClient 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
DBOS Configuration and Launch
A DBOS application MUST configure and launch DBOS inside its main function:
import os
from dbos import DBOS, DBOSConfig
@DBOS.workflow()
def my_workflow():
pass
if __name__ == "__main__":
config: DBOSConfig = {
"name": "my-app",
"system_database_url": os.environ.get("DBOS_SYSTEM_DATABASE_URL"),
}
DBOS(config=config)
DBOS.launch()
Workflow and Step Structure
Workflows are comprised of steps. Any function performing complex operations or accessing external services must be a step:
@DBOS.step()
def call_external_api():
return requests.get("https://api.example.com").json()
@DBOS.workflow()
def my_workflow():
result = call_external_api()
return result
Key Constraints
- Do NOT call
DBOS.start_workfloworDBOS.recvfrom a step - Do NOT use threads to start workflows - use
DBOS.start_workflowor queues - Workflows MUST be deterministic - non-deterministic operations go in steps
- Do NOT create/update global variables from workflows or steps
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
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.5★★★★★43 reviews- ★★★★★William Rao· Dec 24, 2024
dbos-python has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Noor Martin· Dec 20, 2024
We added dbos-python from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Pratham Ware· Dec 16, 2024
dbos-python fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Kabir Li· Dec 12, 2024
Keeps context tight: dbos-python is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Aditi Farah· Dec 8, 2024
dbos-python fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Sophia Martin· Nov 19, 2024
dbos-python fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Lucas Sethi· Nov 15, 2024
Keeps context tight: dbos-python is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Zaid Martinez· Nov 3, 2024
dbos-python has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Zaid Smith· Oct 22, 2024
Solid pick for teams standardizing on skills: dbos-python is focused, and the summary matches what you get after install.
- ★★★★★Sophia Sharma· Oct 10, 2024
We added dbos-python from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
showing 1-10 of 43