Every registered backend needs the worker bus:
TAI_BUS_REDIS_URL must be set, or boot is refused. Stacks
sharing one Redis must also diverge on TAI_BUS_NAMESPACE (default tai).arq
The default. Redis-only, no separate broker, and the backend the distribution bundle selects.manifest.yml
Run the worker:
worker is the only tai backend subcommand
this backend accepts — there is no beat or dashboard process, and anything else
exits.
Celery
Choose Celery when you already run RabbitMQ, or when you need beat and flower.manifest.yml
solo or threads pool — forking around the system
resolver deadlocks. backend_list_failed_tasks is not implemented here: Celery
keeps no queryable failed-task index.
RQ
Redis-only like arq, with a worker, a scheduler, and the RQ dashboard.manifest.yml
backend_list_schedules always reports a
schedule as enabled, and disabling one deletes it.
backend_registered_tasks and backend_list_failed_tasks are not implemented.
See also
- Backends — the contract all three implement.
- Manage a fleet — read the live worker census.
- Schedule a tool — put work on a schedule.

