Skip to content
Changelog

Durable background execution keeps runs alive through crashes and deploys

August 24, 20261 min read

Durable background execution commits an accepted run to your database before it starts, so a crash or a deploy no longer takes the run down with it. Any replica can pick the run up and finish it, and it is no longer tied to the machine that first accepted it.

Previously, a background run lived only in the process that started it. Now the queue is backed by your database, and Redis is optional coordination rather than the source of truth.

The queue includes bounded concurrency (default 32, set with AGNO_BACKGROUND_MAX_CONCURRENCY), cancellation while a job is still queued, Idempotency-Key dedupe so a retried request never runs twice, and a 429 when the queue is full. A client that drops its connection can reconnect and resume the stream, and a REST surface lets you list, inspect, and requeue jobs.

Enable it on AgentOS:

from agno.os import AgentOS
from agno.job_queue import QueueConfig
 
agent_os = AgentOS(agents=[agent], queue=QueueConfig(durable=True))

See the docs for the durable queue, operations and multi-replica.

Shipped around the same time