# Background Processing

**Work that outlives the request, from one handler file.** In NetScript, moving work off the request path means authoring a single typed handler — the queue, retry policy, scheduler, execution history, trigger API, and OpenTelemetry traces come from the worker runtime, so there is no separate queue-and-worker stack to assemble (or to explain to an AI agent) before the first job runs.

Two page-level stories anchor this pillar. [Background jobs](https://rickylabs.github.io/netscript/background-processing/workers/) opens with a production one: a vision job that turns a pasted alert-email screenshot into structured diagnosis fields — and the two contract properties (queue-borne payloads, compute-only workers) that shaped it, plus a factual side-by-side with Trigger.dev and Temporal. [Polyglot tasks](https://rickylabs.github.io/netscript/background-processing/polyglot-tasks/) covers the step that is *not* TypeScript: an existing Python, .NET, or shell script that keeps its language and gains the same queue, retry, and trace behavior as everything else.

Background Processing covers worker tasks, queue providers, scheduled work, runtime adapters, and per-task permissions. Start here when work should run outside the request path but does not need the durable saga state model — for that, see [durable workflows](https://rickylabs.github.io/netscript/durable-workflows/).

[Overview & Concepts   Workers and queues  Worker tasks consume queued work with provider and runtime choices kept inside the leaf.](https://rickylabs.github.io/netscript/netscript/background-processing/workers/) [Quickstart   Polyglot transform  Run a task step from the ERP Sync tutorial.](https://rickylabs.github.io/netscript/netscript/tutorials/erp-sync/03-polyglot-transform/) [How-To   Queue, KV, and cron  Create the queue and scheduler loop used by background work.](https://rickylabs.github.io/netscript/netscript/data-persistence/how-to/queue-kv-cron/) [How-To   Choose a queue provider  Select the provider that fits your local and deployed runtime.](https://rickylabs.github.io/netscript/netscript/data-persistence/how-to/choose-a-queue-provider/) [How-To   Run a polyglot task  Execute work in a non-TypeScript task runtime.](https://rickylabs.github.io/netscript/netscript/background-processing/how-to/run-a-polyglot-task/) [API Reference   workers, queue, cron  Generated symbols for task, queue, scheduler, and watcher packages.](https://rickylabs.github.io/netscript/netscript/reference/workers/)

## Learn, do, look up

[Learn  ERP sync tutorial  An import job, a polyglot transform, and a queue-driven cron.](https://rickylabs.github.io/netscript/netscript/tutorials/erp-sync/) [Do  Recipes  Task-oriented recipes for this area, one problem each.](https://rickylabs.github.io/netscript/netscript/background-processing/how-to/) [Look up  `@netscript/workers` reference  Generated API reference. Related units: `queue`, `cron`, `watchers`.](https://rickylabs.github.io/netscript/netscript/reference/workers/) [Understand  The durability model  The design rationale behind this pillar.](https://rickylabs.github.io/netscript/netscript/explanation/durability-model/)
