dbos-transact-py  by dbos-inc

Durable workflow SDK built on Postgres

created 1 year ago
815 stars

Top 44.4% on sourcepulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

DBOS Transact is a Python library that enables developers to build lightweight, durable workflows and queues directly within their applications, leveraging PostgreSQL for state management. It targets developers building reliable systems that must handle failures gracefully, such as payment processors, data pipelines, or AI agents, by simplifying complex state management and recovery logic.

How It Works

DBOS makes Python functions durable by annotating them as @DBOS.step() or @DBOS.workflow(). The library checkpoints the state of these functions in PostgreSQL. Upon program restart after a failure, DBOS automatically resumes workflows from their last completed step. Durable queues are also managed via PostgreSQL, allowing tasks (steps or workflows) to be enqueued, executed reliably, and their results retrieved, all without external orchestration services.

Quick Start & Requirements

Highlighted Details

  • Durable workflows and queues are managed entirely within PostgreSQL, eliminating the need for separate orchestration infrastructure.
  • Provides exactly-once event processing for webhooks, event listeners, and Kafka consumers.
  • Supports durable scheduling via cron syntax and DBOS.sleep() for long-duration pauses.
  • Workflows can be programmatically managed (query, pause, resume, restart) via a DBOSClient.

Maintenance & Community

Licensing & Compatibility

  • The library is open-source. The specific license is not explicitly stated in the README, but it is presented as an open-source library for use.

Limitations & Caveats

DBOS relies heavily on PostgreSQL for its durability guarantees; performance may be impacted by PostgreSQL's capabilities and load. Compared to systems like Celery/BullMQ, DBOS queues may offer lower throughput due to their durable, PostgreSQL-backed nature.

Health Check
Last commit

1 day ago

Responsiveness

1 day

Pull Requests (30d)
12
Issues (30d)
5
Star History
151 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.