> ## Documentation Index
> Fetch the complete documentation index at: https://iii.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Every new capability in iii is added by writing a Worker, never by extending the Engine.

Every new capability in a iii system is added by creating a Worker. A queue, a scheduler, an HTTP
edge, a browser tab, an agent, a CRM integration, or a sandbox. Each is a Worker that connects to
the Engine and registers Triggers and Functions. The Engine itself never needs to change.

## Workers are the services

A Worker is the unit of capability in iii. It 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. Everything that makes a iii system do
something useful runs in a Worker.

This is why "add a Worker" is the answer to almost every "how do I add X to iii?" question. If a
capability is missing, the gap is filled by a Worker, not by a change to iii itself.

> [!NOTE]
>
> For the mental model behind Workers, Triggers, Functions, and the Engine, see [Understanding iii /
> Overview](/docs/0-24-0/understanding-iii.md). To build Workers continue with this section.

## Build on existing Workers

Most Workers you create will use one or more existing Workers for their basic functionality, an HTTP
endpoint, a key-value store, a queue, scheduling, observability, a sandbox, rather than building
those from scratch. Reach for what already exists before writing your own.

The ones you reach for most often are documented here under **Common Workers**:

* [HTTP](/docs/0-24-0/creating-workers/http.md), expose Functions as HTTP endpoints.
* [Queues](/docs/0-24-0/creating-workers/queues.md), async job processing with retries and a dead-letter queue.
* [Observability](/docs/0-24-0/creating-workers/observability.md), traces, metrics, and logs across Workers.
* [Sandboxes](/docs/0-24-0/creating-workers/sandboxes.md), run untrusted or short-lived code in an isolated microVM.
* [Access Control](/docs/0-24-0/creating-workers/worker-manager.md), accept untrusted connections through RBAC-gated listeners.

The full catalog of Workers is published at [workers.iii.dev](https://workers.iii.dev). If you need
common
functionality for your Worker, look in these two places first.

## What's in this section

> **[Workers](/docs/0-24-0/creating-workers/workers.md)**
>
> Connect a Worker to the Engine and deploy it.

> **[Triggers](/docs/0-24-0/creating-workers/triggers.md)**
>
> Declare what causes those Functions to run.

> **[Functions](/docs/0-24-0/creating-workers/functions.md)**
>
> Register the Functions a Worker contributes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.