Burr is a lightweight, in-process Python framework originally created by DAGWorks Inc. that lets developers model applications as stateful graphs (state machines). Each application is composed of a series of actions — decorated functions or classes — that declare what they read from state, what they accept as user inputs, and how they update state after execution. The framework is dependency-free at its core, so it can be embedded inside any server, web app, Streamlit app, or FastAPI service without imposing architectural constraints. Burr is well-suited for any system that needs persistent, resumable state: chatbots, autonomous agents, multi-agent pipelines, simulations, ML training orchestration, and robotics control loops. Developers wire actions into a graph with conditional transitions, then execute the graph via Burr's application runner, which handles step-by-step execution and state propagation automatically. The framework ships with a self-hostable tracking UI that shows real-time execution traces, action inputs/outputs, and state transitions. Observability is added with a single `.with_tracker()` call and is compatible with OpenTelemetry. State persistence (for resumability and user sessions) is handled by pluggable persisters via `.with_state_persister()`, with backends including disk, databases, and custom implementations. In late 2024 DAGWorks donated Burr to the Apache Software Foundation, where it now resides as Apache Burr (Incubating) under the repository github.com/apache/burr. Active development continues, with the project publishing recent work (as of December 2024) on parallelism approaches for multi-agent and augmented-LLM workflows. Burr is DAGWorks' second open-source library, following the Hamilton dataflow library. Key features: - State machine modeling: applications expressed as action-driven graphs with conditional transitions - Dependency-free Python core: embeds in any server, Streamlit, FastAPI, or notebook - Built-in real-time tracking UI for monitoring execution traces and state changes - OpenTelemetry-compatible observability via .with_tracker() - Pluggable state persisters (.with_state_persister()) for resumable sessions and memory - Supports parallel / multi-agent workflows with explicit parallelism primitives - Integrations with popular LLM frameworks (Haystack, LangChain-compatible patterns) - Apache incubating project: community-governed, self-hostable, no vendor lock-in
Open-source (MIT/Apache); free to self-host. DAGWorks previously offered a cloud tracking service with a 14-day trial at the Team tier; current cloud pricing listed as 'Coming Soon' on the official site.
