Workers are the services
A Worker is the service. When you need new behaviour, you write a new Worker (or install an existing one from the registry); you do not patch the Engine, add a plugin to it, or fork it. The Engine is a fixed coordinator, it routes invocations between Workers and maintains the live registry of what each Worker provides.For the mental model behind Workers, Functions, Observers, and the Engine, see Understanding iii
/ Overview. To build Workers continue with this section.
Build on existing Workers
Most Workers you create use one or more existing Workers for their basic functionality. Use what already exists before you write your own. The ones you reach for most often are documented here under Common Workers:- Database, run SQL against PostgreSQL, MySQL, or SQLite.
- HTTP, expose Functions as HTTP endpoints.
- Queues, async job processing with retries and a dead-letter queue.
- Observability, traces, metrics, and logs across Workers.
- Sandboxes, run untrusted or short-lived code in an isolated microVM.
- Access Control, accept untrusted connections through RBAC-gated listeners.
What’s in this section
Workers
Connect a Worker to the Engine and deploy it.
Functions
Register the Functions a Worker contributes.
Observable functions
Decide what happens when your Functions are observed.
Worker manifest
Provision and start a Worker from
iii.worker.yaml.Channels
Stream large or binary payloads between Workers.