A worker management service that uses the unstract-task-abstraction library to initialize and run backend-specific workers.
This service is NOT an HTTP service - it's a worker process that:
- Uses task-abstraction library to get the appropriate backend client
- Initializes backend-specific workers (Celery, Hatchet, Temporal)
- Registers workflows with the selected backend
- Runs workers that consume tasks from the backend
- Connect to Redis broker
- Start multiple worker processes
- Consume from configured queues
- Similar to existing
backend/workers/pattern
- Connect to Hatchet server via HTTP/gRPC
- Register workflows with server
- Poll for task assignments
- Execute tasks and report results
- Connect to Temporal server via gRPC
- Register activities and workflows
- Listen for workflow executions
- Handle activity execution
# Install dependencies
uv sync
# Copy configuration
cp sample.env .env
# Edit .env to set TASK_BACKEND_TYPE and connection details
# Start worker (auto-detects backend from env)
task-backend-worker
# Or start specific backend
task-backend-worker --backend=celery
task-backend-worker --backend=hatchet
task-backend-worker --backend=temporalSee sample.env for all configuration options. Key settings:
TASK_BACKEND_TYPE: Backend to use (celery, hatchet, temporal)CELERY_BROKER_URL: Redis URL for CeleryHATCHET_CLIENT_TOKEN: Token for Hatchet serverTEMPORAL_HOST: Temporal server host
This service replaces the functionality of:
- Runner Service workers
- Prompt Service workers
- Structure Tool workers
It provides the same task execution capabilities but through a unified, backend-agnostic interface using the task-abstraction library.
# Run tests
uv run pytest
# Linting
uv run ruff check .
uv run ruff format .
# Type checking
uv run mypy .