# DBOS Documentation ## Docs - [DBOS Architecture](https://docs.dbos.dev/architecture.md): DBOS provides a lightweight library for durable workflows built on top of Postgres. - [DBOS Examples](https://docs.dbos.dev/examples/index.md): Example applications built with DBOS - [Comparing DBOS and Temporal](https://docs.dbos.dev/explanations/comparing-temporal.md): DBOS and Temporal both provide durable workflows. - [DBOS System Tables](https://docs.dbos.dev/explanations/system-tables.md): DBOS system tables reference - [Troubleshooting & FAQ](https://docs.dbos.dev/faq.md): Where do I find the DBOS tables? - [Fault-Tolerant Checkout](https://docs.dbos.dev/golang/examples/widget-store.md): This example is also available in TypeScript, Java, and Python. - [Add DBOS To Your App](https://docs.dbos.dev/golang/integrating-dbos.md): This guide shows you how to add the open-source DBOS Transact library to your existing application to durably execute it and make it resilient to any failure. - [Learn DBOS Go](https://docs.dbos.dev/golang/programming-guide.md): This guide shows you how to use DBOS to build Go apps that are resilient to any failure. - [AI Model Prompting](https://docs.dbos.dev/golang/prompting.md): You may want assistance from an AI model in building a DBOS application. - [DBOS CLI](https://docs.dbos.dev/golang/reference/cli.md): Click here to view the DBOS CLI documentation → - [DBOS Client](https://docs.dbos.dev/golang/reference/client.md): Client provides a programmatic way to interact with your DBOS application from external code. - [DBOS Context](https://docs.dbos.dev/golang/reference/dbos-context.md): A DBOS Context is at the center of a DBOS-enabled application. Use it to register workflows, queues and perform workflow management tasks. - [DBOS Methods & Variables](https://docs.dbos.dev/golang/reference/methods.md): DBOS Methods - [Queues](https://docs.dbos.dev/golang/reference/queues.md): Workflow queues allow you to ensure that workflow functions will be run, without starting them immediately. - [Workflows & Steps](https://docs.dbos.dev/golang/reference/workflows-steps.md): RegisterWorkflow - [Queues & Concurrency](https://docs.dbos.dev/golang/tutorials/queue-tutorial.md): You can use queues to run many workflows at once with managed concurrency. - [Steps](https://docs.dbos.dev/golang/tutorials/step-tutorial.md): When using DBOS workflows, you should call any function that performs complex operations or accesses external APIs or services as a step. - [Testing & Mocking](https://docs.dbos.dev/golang/tutorials/testing.md): DBOSContext is a fully mockable interface, which you manually mock, or can generate mocks using tools like mockery. - [Communicating with Workflows](https://docs.dbos.dev/golang/tutorials/workflow-communication.md): DBOS provides a few different ways to communicate with your workflows. - [Workflow Management](https://docs.dbos.dev/golang/tutorials/workflow-management.md): You can view and manage your durable workflow executions via a web UI (self-hosted, DBOS Cloud) or programmatically. - [Workflows](https://docs.dbos.dev/golang/tutorials/workflow-tutorial.md): Workflows provide durable execution so you can write programs that are resilient to any failure. - [Welcome to DBOS!](https://docs.dbos.dev/index.md): DBOS is a library for building reliable programs. - [Django](https://docs.dbos.dev/integrations/django.md): This guide shows you how to add the open source DBOS Transact library to your existing Django application to durably execute it and make it resilient to any failure. - [Logfire](https://docs.dbos.dev/integrations/logfire.md): Pydantic Logfire is an observability platform built on OpenTelemetry that makes it easy to monitor your application. - [Neon](https://docs.dbos.dev/integrations/neon.md): Here's how to connect your DBOS application running on your computer or cloud environment to your Neon database. - [Nest.js](https://docs.dbos.dev/integrations/nestjs.md): This guide shows you how to add the open source DBOS Transact library to your existing Nest.js application to durably execute it and make it resilient to any failure. - [Pydantic AI](https://docs.dbos.dev/integrations/pydantic-ai.md): Pydantic AI is a Python agent framework for building production-grade applications and workflows powered by Generative AI. - [Supabase](https://docs.dbos.dev/integrations/supabase.md): To learn more about how DBOS and Supabase are working together, check out this blog post! - [Tiger Data](https://docs.dbos.dev/integrations/tigerdata.md): Here's how to connect your DBOS application running on your computer or cloud environment to a Postgres or TimescaleDB database running in Tiger Cloud (the makers of TimescaleDB). - [Fault-Tolerant Checkout](https://docs.dbos.dev/java/examples/widget-store.md): This example is also available in TypeScript, Go, and Python. - [Add DBOS To Your App](https://docs.dbos.dev/java/integrating-dbos.md): This guide shows you how to add the open-source DBOS Transact library to your existing application to durably execute it and make it resilient to any failure. - [Learn DBOS Java](https://docs.dbos.dev/java/programming-guide.md): This guide shows you how to use DBOS to build Java apps that are resilient to any failure. - [DBOS Client](https://docs.dbos.dev/java/reference/client.md): DBOSClient provides a programmatic way to interact with your DBOS application from external code. - [DBOS Lifecycle](https://docs.dbos.dev/java/reference/lifecycle.md): The DBOS class is a singleton—you should configure and launch it exactly once in a program's lifetime. - [DBOS Methods & Variables](https://docs.dbos.dev/java/reference/methods.md): DBOS Methods - [Queues](https://docs.dbos.dev/java/reference/queues.md): Workflow queues ensure that workflow functions will be run, without starting them immediately. - [Workflows & Steps](https://docs.dbos.dev/java/reference/workflows-steps.md): Annotations - [Queues & Concurrency](https://docs.dbos.dev/java/tutorials/queue-tutorial.md): You can use queues to run many workflows at once with managed concurrency. - [Scheduled Workflows](https://docs.dbos.dev/java/tutorials/scheduled-workflows.md): Learn how to run DBOS workflows on a schedule. - [Steps](https://docs.dbos.dev/java/tutorials/step-tutorial.md): When using DBOS workflows, you should call any method that performs complex operations or accesses external APIs or services as a step. - [Communicating with Workflows](https://docs.dbos.dev/java/tutorials/workflow-communication.md): DBOS provides a few different ways to communicate with your workflows. - [Workflow Management](https://docs.dbos.dev/java/tutorials/workflow-management.md): You can view and manage your durable workflow executions via a web UI (self-hosted, DBOS Cloud) or programmatically. - [Workflows](https://docs.dbos.dev/java/tutorials/workflow-tutorial.md): Workflows provide durable execution so you can write programs that are resilient to any failure. - [Account Management](https://docs.dbos.dev/production/dbos-cloud/account-management.md): Learn how to manage DBOS Cloud users - [Application Management](https://docs.dbos.dev/production/dbos-cloud/application-management.md): Deploying Applications - [Bringing Your Own Database](https://docs.dbos.dev/production/dbos-cloud/byod-management.md): In this guide, you'll learn how to bring your own Postgres database instance to DBOS Cloud and deploy your applications to it. - [CI/CD Best Practices](https://docs.dbos.dev/production/dbos-cloud/cicd.md): Staging and Production Environments - [Cloud CLI Reference](https://docs.dbos.dev/production/dbos-cloud/cloud-cli.md): DBOS Cloud CLI reference - [Database Management](https://docs.dbos.dev/production/dbos-cloud/database-management.md): Learn how to manage DBOS Cloud database instances - [Deploying to DBOS Cloud](https://docs.dbos.dev/production/dbos-cloud/deploying-to-cloud.md): Any application built with DBOS can be deployed to DBOS Cloud. - [Monitoring Your Applications](https://docs.dbos.dev/production/dbos-cloud/monitoring-dashboard.md): The DBOS Cloud Console provides several tools to monitor your applications. - [Export Logs and Traces](https://docs.dbos.dev/production/dbos-cloud/otel-integration.md): This tutorial shows how to configure your DBOS Cloud application to export OpenTelemetry logs and traces to a third party observability service. If your service accepts the OTEL format, you can skip steps 1 and 2. Simply pass environment variables like OTELEXPORTEROTLP_HEADERS as app secrets (see step 3) and then configure logs and traces enpdoints as shown in step 4. - [Workflow Retention Policies](https://docs.dbos.dev/production/dbos-cloud/retention.md): Retention policies require DBOS Python >= 1.5.0 or DBOS TypeScript >= 2.10.24 - [Secrets and Environment Variables](https://docs.dbos.dev/production/dbos-cloud/secrets.md): We recommend using secrets to securely manage your application's secrets and environment variables in DBOS Cloud. - [Workflow Management](https://docs.dbos.dev/production/dbos-cloud/workflow-management.md): Viewing Workflows - [Deploying To Production](https://docs.dbos.dev/production/index.md): Once you've made your application durable with DBOS, there are two ways to take it into production: - [Admin API Reference](https://docs.dbos.dev/production/self-hosting/admin-api.md): The DBOS library exposes an admin API to perform operations on durable workflows. - [DBOS Conductor](https://docs.dbos.dev/production/self-hosting/conductor.md): The simplest way to operate DBOS durable workflows in production is to connect your application to DBOS Conductor. - [Deploying With Docker](https://docs.dbos.dev/production/self-hosting/hosting-with-docker.md): This guide shows you how to setup a starter DBOS Python application and its Postgres database using Docker. - [Deploying With Kubernetes](https://docs.dbos.dev/production/self-hosting/hosting-with-kubernetes.md): This guide shows you how to setup a DBOS Python application and its Postgres database using Kubernetes. - [Workflow Retention Policies](https://docs.dbos.dev/production/self-hosting/retention.md): Retention policies require DBOS Python >= 1.5.0 or DBOS TypeScript >= 2.10.24 - [Workflow Management](https://docs.dbos.dev/production/self-hosting/workflow-management.md): Workflow observability and management features are only available for applications connected to Conductor. - [Workflow Recovery](https://docs.dbos.dev/production/self-hosting/workflow-recovery.md): When the execution of a durable workflow is interrupted (for example, if its executor is restarted, interrupted, or crashes), another executor must recover the workflow and resume its execution. - [AI Agent Inbox](https://docs.dbos.dev/python/examples/agent-inbox.md): This example shows how to use DBOS to add human-in-the-loop to your AI agent. - [Reliable Customer Service Agent](https://docs.dbos.dev/python/examples/customer-service.md): In this example, you'll learn how to build a reliable AI-powered customer service agent with DBOS and LangGraph and serverlessly deploy it to DBOS Cloud. This example demonstrates how DBOS makes it easy to connect your AI agent to your existing production systems, especially when integrating human decision-making into automated processes. - [Document Ingestion Pipeline](https://docs.dbos.dev/python/examples/document-detective.md): In this example, we'll use DBOS to build a reliable and scalable data processing pipeline. - [Earthquake Tracker](https://docs.dbos.dev/python/examples/earthquake-tracker.md): In this example, we use DBOS to build and deploy a real-time earthquake dashboard. - [Hacker News Research Agent](https://docs.dbos.dev/python/examples/hacker-news-agent.md): This example is also available in TypeScript. - [Hacker News Slackbot](https://docs.dbos.dev/python/examples/hacker-news-bot.md): In this example, we use DBOS to build and deploy a scheduled job that periodically searches Hacker News for people commenting about serverless computing and posts the comments to Slack. - [AI-Powered Slackbot](https://docs.dbos.dev/python/examples/rag-slackbot.md): In this example, we use DBOS and LlamaIndex to build and deploy a Slackbot that uses retrieval-augmented generation (RAG) to answer questions about previous Slack conversations. - [S3 Mirror](https://docs.dbos.dev/python/examples/s3mirror.md): S3Mirror is a DBOS-powered utility for performant, durable and observable data transfers between S3 buckets. This app was created in collaboration with Bristol Myers Squibb for reliable transfers of genomic datasets. Read our joint manuscript, including a performance benchmark, on bioRxiv here. - [Scheduled Reminders](https://docs.dbos.dev/python/examples/scheduled-reminders.md): In this example, we use DBOS to build and deploy an app that schedules reminder emails for any day in the future. - [Stock Tracker](https://docs.dbos.dev/python/examples/stock-tracker.md): In this example, we use DBOS to build and deploy an app that tracks stock prices and sends SMS alerts when the price of a stock crosses a certain threshold. - [Fault-Tolerant Checkout](https://docs.dbos.dev/python/examples/widget-store.md): This example is also available in TypeScript, Java, and Go. - [Add DBOS To Your App](https://docs.dbos.dev/python/integrating-dbos.md): This guide shows you how to add the open-source DBOS Transact library to your existing application to durably execute it and make it resilient to any failure. - [Learn DBOS Python](https://docs.dbos.dev/python/programming-guide.md): This guide shows you how to use DBOS to build Python apps that are resilient to any failure. - [AI Model Prompting](https://docs.dbos.dev/python/prompting.md): You may want assistance from an AI model in building a DBOS application. - [DBOS CLI](https://docs.dbos.dev/python/reference/cli.md): Workflow Management Commands - [DBOS Client](https://docs.dbos.dev/python/reference/client.md): DBOSClient provides a programmatic way to interact with your DBOS application from external code. - [Configuration](https://docs.dbos.dev/python/reference/configuration.md): Configuring DBOS - [DBOS Methods & Variables](https://docs.dbos.dev/python/reference/contexts.md): DBOS provides a number of useful context methods and variables. - [DBOS Class](https://docs.dbos.dev/python/reference/dbos-class.md): The DBOS class is a singleton—you must instantiate it (by calling its constructor) exactly once in a program's lifetime. - [Decorators](https://docs.dbos.dev/python/reference/decorators.md): API reference for DBOS decorators. - [Queues](https://docs.dbos.dev/python/reference/queues.md): Queues allow you to ensure that functions will be run, without starting them immediately. - [Workflow Handles](https://docs.dbos.dev/python/reference/workflow_handles.md): API reference for DBOS workflow handles - [Authentication and Authorization](https://docs.dbos.dev/python/tutorials/authentication-authorization.md): Use declarative security and authentication middleware in DBOS - [Working With Python Classes](https://docs.dbos.dev/python/tutorials/classes.md): You can add DBOS decorators to your Python class instance methods. - [DBOS Database Connections](https://docs.dbos.dev/python/tutorials/database-connection.md): DBOS uses a database to durably store workflow and step state. - [Debugging](https://docs.dbos.dev/python/tutorials/debugging.md): Learn how to debug your DBOS Python workflows. - [Integrating with Kafka](https://docs.dbos.dev/python/tutorials/kafka-integration.md): Overview of using DBOS with Kafka - [Logging & Tracing](https://docs.dbos.dev/python/tutorials/logging-and-tracing.md): Logging - [Queues & Concurrency](https://docs.dbos.dev/python/tutorials/queue-tutorial.md): You can use queues to run many workflows at once with managed concurrency. - [Scheduled Workflows](https://docs.dbos.dev/python/tutorials/scheduled-workflows.md): Learn how to run DBOS workflows on a schedule. - [Steps](https://docs.dbos.dev/python/tutorials/step-tutorial.md): When using DBOS workflows, you should annotate any function that performs complex operations or accesses external APIs or services as a step. - [Testing Your App](https://docs.dbos.dev/python/tutorials/testing.md): Testing DBOS Functions - [Transactions](https://docs.dbos.dev/python/tutorials/transaction-tutorial.md): Learn how to perform database operations - [Communicating with Workflows](https://docs.dbos.dev/python/tutorials/workflow-communication.md): DBOS provides a few different ways to communicate with your workflows. - [Workflow Management](https://docs.dbos.dev/python/tutorials/workflow-management.md): You can view and manage your durable workflow executions via a web UI (self-hosted, DBOS Cloud), programmatically, or via command line. - [Workflows](https://docs.dbos.dev/python/tutorials/workflow-tutorial.md): Workflows provide durable execution so you can write programs that are resilient to any failure. - [Get Started with DBOS](https://docs.dbos.dev/quickstart.md): DBOS is a library for building reliable programs. - [Fault-Tolerant Checkout](https://docs.dbos.dev/typescript/examples/checkout-tutorial.md): This example is also available in Python, Java, and Go. - [Hacker News Research Agent](https://docs.dbos.dev/typescript/examples/hacker-news-agent.md): This example is also available in Python. - [Kafka Alert Queue](https://docs.dbos.dev/typescript/examples/kafka-alert-queue.md): In this example, we use DBOS to build an app that consumes Alert notifications as Kafka messages. Every Kafka message is handled exactly once, even if the app is stopped and restarted at any point. All source code is available on GitHub. - [DBOS Task Scheduler](https://docs.dbos.dev/typescript/examples/task-scheduler.md): Learn how to combine DBOS + Next.js with this cloud scheduling tool - [Add DBOS To Your App](https://docs.dbos.dev/typescript/integrating-dbos.md): This guide shows you how to add the open-source DBOS Transact library to your existing application to durably execute it and make it resilient to any failure. - [Learn DBOS TypeScript](https://docs.dbos.dev/typescript/programming-guide.md): This guide shows you how to use DBOS to build TypeScript apps that are resilient to any failure. - [AI Model Prompting](https://docs.dbos.dev/typescript/prompting.md): You may want assistance from an AI model in building a DBOS application. - [DBOS CLI](https://docs.dbos.dev/typescript/reference/cli.md): Workflow Management Commands - [DBOS Client](https://docs.dbos.dev/typescript/reference/client.md): DBOSClient provides a programmatic way to interact with your DBOS application from external code. - [Configuration](https://docs.dbos.dev/typescript/reference/configuration.md): Configuring DBOS - [Transactions & Datasources](https://docs.dbos.dev/typescript/reference/datasource.md): Introduction To Transactions And Datasources - [DBOS Lifecycle](https://docs.dbos.dev/typescript/reference/dbos-class.md): The DBOS class is a singleton—it must be configured and launched exactly once in a program's lifetime, before running any DBOS workflows. - [DBOS Methods & Variables](https://docs.dbos.dev/typescript/reference/methods.md): DBOS Methods - [DBOS Plugin Architecture](https://docs.dbos.dev/typescript/reference/plugins.md): Unless you intend to extend the DBOS Transact library, you can ignore this topic. - [Queues](https://docs.dbos.dev/typescript/reference/queues.md): Workflow queues allow you to ensure that workflow functions will be run, without starting them immediately. - [Workflows & Steps](https://docs.dbos.dev/typescript/reference/workflows-steps.md): Workflows - [Debugging](https://docs.dbos.dev/typescript/tutorials/debugging.md): Learn how to debug your DBOS TypeScript workflows. - [Kafka & SQS Integration](https://docs.dbos.dev/typescript/tutorials/externalmessages.md): In this guide, you'll learn how to use DBOS workflows to process Kafka or Simple Queue Service (SQS) messages with exactly-once semantics. - [Using Typescript Objects](https://docs.dbos.dev/typescript/tutorials/instantiated-objects.md): You can use class instance methods as workflows and steps. - [Logging & Tracing](https://docs.dbos.dev/typescript/tutorials/logging.md): Logging - [Queues & Concurrency](https://docs.dbos.dev/typescript/tutorials/queue-tutorial.md): You can use queues to run many workflows at once with managed concurrency. - [Scheduled Workflows](https://docs.dbos.dev/typescript/tutorials/scheduled-workflows.md): You can schedule DBOS workflows to run exactly once per time interval. - [Steps](https://docs.dbos.dev/typescript/tutorials/step-tutorial.md): Learn how to communicate with external APIs and services - [Testing & Mocking](https://docs.dbos.dev/typescript/tutorials/testing.md): You can test DBOS workflows and steps using any JavaScript or TypeScript testing framework, like Jest or Vitest. - [Transactions & Datasources](https://docs.dbos.dev/typescript/tutorials/transaction-tutorial.md): Learn how to perform database operations - [Communicating with Workflows](https://docs.dbos.dev/typescript/tutorials/workflow-communication.md): DBOS provides a few different ways to communicate with your workflows. - [Workflow Management](https://docs.dbos.dev/typescript/tutorials/workflow-management.md): You can view and manage your durable workflow executions via a web UI (self-hosted, DBOS Cloud), programmatically, or via command line. - [Workflows](https://docs.dbos.dev/typescript/tutorials/workflow-tutorial.md): Workflows provide durable execution so you can write programs that are resilient to any failure. - [Upgrading to TSv3](https://docs.dbos.dev/typescript/upgrading.md): With the release of DBOS Transact TypeScript version 3 (DBOS TSv3), some APIs that were marked as deprecated in v2 have been removed. - [Why DBOS?](https://docs.dbos.dev/why-dbos.md): What is DBOS?