# Background Workers — Offload asynchronous tasks to a separate service listening on a queue. > *Looking to run high-volume distributed tasks?* > > Currently in beta, [Render Workflows](/workflows) provides an all-in-one worker model with managed queuing, automatic retries, and rapid spin-up. *Background workers* are services that run continuously (like a [web service](web-services) or a [private service](private-services)), but they don't receive any incoming network traffic. Instead, these services usually poll a task queue (such as one backed by a [Render Key Value](key-value) instance) and process new tasks as they come in: [image: Diagram of a background worker polling a task queue] Background workers help to keep your apps responsive by offloading long-running, asynchronous tasks from your services in the critical request path. Common worker tasks include: - Processing media files - Generating reports - Interacting with third-party APIs, such as Stripe, Twilio, or AI models ## Popular worker frameworks You can use the frameworks below to simplify polling a task queue backed by a Redis®-like store (such as [Render Key Value](key-value)). | Language | Framework | | --- | --- | | *Python* | Celery ([see quickstart](/deploy-celery)) | | *Ruby* | Sidekiq ([see quickstart](/deploy-rails-sidekiq)) | | *Node.js* | [BullMQ](https://bullmq.io/) | | *Go* | [Asynq](https://github.com/hibiken/asynq) | | *Elixir* | [Oban](https://hexdocs.pm/oban/Oban.html) *Note:* This framework integrates with Render Postgres instead of Key Value. | | *Rust* | [apalis](https://github.com/geofmureithi/apalis) |