DBOS Transact: Lightweight Durable Workflow Orchestration with Postgres Overview DBOS Transact is a lightweight, open-source library written in Go that provides durable workflow orchestration built on top of PostgreSQL. It allows developers to add resilient, checkpointed workflows and durable queues to their applications, ensuring reliable execution even through failures like server crashes. Repository: dbos-inc/dbos-transact-golang Language: Primarily Go (97.3%) License: MIT Stars: 270 Forks: 35 Releases: 8 (latest: v0.7.0) What is DBOS? DBOS offers durable workflow orchestration using Postgres as the backing store. Instead of using external workflow orchestrators or complex task queues, DBOS lets you write ordinary Go functions and register them as workflows. The state is saved in the database, allowing workflows to resume automatically after failures. When Should You Use DBOS? Use DBOS if your application needs to reliably handle failures and ensure tasks resume seamlessly: Critical applications like payment processing. Long-running data pipelines requiring checkpointing. AI agents or other apps relying on unreliable or non-deterministic APIs. DBOS simplifies handling failures by checkpointing state and recovery logic internally with Postgres, avoiding reliance on heavyweight external services. Key Features Durable Workflows Workflows checkpoint their progress in Postgres. On failure, workflows resume from the last completed step automatically. Can wrap ordinary functions as workflow steps. Enables fault-tolerant business process orchestration, observable data pipelines, and resilient AI workflows. Durable Queues Enqueue background tasks durably in Postgres-backed queues. Guarantees that tasks are executed exactly once and results delivered reliably. Supports concurrency limits, rate limiting, deduplication, prioritization, and timeouts. Requires no separate queue systems like Redis—Postgres is all you need. Exactly-Once Event Processing Process events (e.g., webhooks, Kafka messages) exactly once using unique workflow IDs to prevent duplication. Useful for asynchronous event handling where reliability is key. Durable Scheduling Schedule workflows using cron syntax or durable sleeps (even for long durations like days or weeks). Workflow sleep state is saved in Postgres, ensuring sleeps survive restarts and interruptions. Durable Notifications Workflows can wait for notifications or send events with exactly-once semantics. Useful to pause workflows until an external event occurs or send progress updates. Code Examples Durable Workflow Example (Go) Durable Queue Example (Go) Scheduling and Sleeping Example