Documentation Index
Fetch the complete documentation index at: https://motiadev-docs-phase-2.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
What channels are
Channels are stream pipes between iii workers. They let one function write bytes while another function reads those bytes in real time, even when the functions run in different processes or languages.The model
| Concept | What it does |
|---|---|
| Channel | A WebSocket-backed pipe managed by the engine. |
| Writer | Sends bytes or text messages into the pipe. |
| Reader | Receives bytes or text messages from the pipe. |
| Ref | A small serializable token passed through trigger() payloads. |
Why channels exist
Function invocations are JSON messages. That is perfect for structured events and command payloads, but it is the wrong approach for large files, media, streaming responses (agents, chats), and long-running partial output. Channels split coordination from data transfer:- A function call coordinates the work.
- A channel carries the stream.
- The engine tracks tracing and routing.
Runtime flow
The producer creates a channel and passesreaderRef to the consumer. Node and Python materialize
that ref into a live reader before the handler runs. Rust receives the ref as JSON and constructs a
ChannelReader from it. The producer writes chunks into its local writer, and the consumer reads
those chunks from its local reader.