GitHub: dbos_experiments/exp25 Experiment 25: Multiple Queues with Rate Limiters and Partitioning Overview This example demonstrates how to use DBOS queues with different rate limiters to control the rate of HTTP requests to external APIs. The example simulates managing API requests to multiple cloud providers (AWS, Azure, GCP) for different data types (users, groups, permissions), where each data…
GitHub: dbos_experiments/exp23 DBOS Workflow Communication Patterns This experiment demonstrates three powerful communication patterns for DBOS workflows: Workflow Events - Publish key-value pairs that clients can query Workflow Messaging - Send/receive messages to/from workflows Workflow Streaming - Stream real-time data from workflows to clients Overview The server implements three different…
GitHub: dbos_experiments/exp22 Exp22: DBOS Graceful Shutdown Example This example demonstrates how to implement graceful shutdown for DBOS applications with FastAPI, ensuring that workflows complete properly before the application terminates. Overview This application showcases: Graceful shutdown using FastAPI’s lifespan context manager Async workflows with nested sub-workflows and steps…
GitHub: dbos_experiments/exp21 Experiment 21: DBOS FastAPI Health Checks During Workflow Execution Overview This experiment tests whether a DBOS FastAPI application can respond to health checks while running workflows. Result: It can! The application remains responsive to HTTP requests even when workflows are actively executing in the background. Test Setup FastAPI endpoint at / that enqueues 5…
GitHub: dbos_experiments/exp19 Experiment 19: DBOS Class Instantiation Timing Purpose This experiment tests DBOS-decorated class instantiation timing to verify behavior against DBOS documentation, specifically: DBOS-decorated classes must be instantiated before DBOS.launch() is called. What This Tests The code intentionally violates the documented guideline by: Calling DBOS.launch() first Then…
GitHub: dbos_experiments/exp18 Async Rate Limiter A reusable async rate limiter decorator that evenly spaces function calls over time. Features Even Spacing : Distributes calls uniformly (not bursts) Async-First : Built with asyncio Thread-Safe : Uses asyncio.Lock Zero Dependencies : Python stdlib only Type Hints : Fully typed Installation Copy rate_limiter.py to your project. No external…
GitHub: dbos_experiments/exp17 ELT Pipeline with DBOS Workflows A resilient, distributed ELT (Extract, Load, Transform) pipeline built with DBOS workflows, featuring automatic failure recovery, memory-efficient batching, and data deduplication. Overview This project demonstrates a production-ready ELT pipeline that processes users from multiple external APIs across different organizations and…