Modules are the interface between the Engine and the rest of the application. They are responsible for establishing connections to services, implementing trigger types, and supplying application Context. Every capability in iii (HTTP endpoints, cron scheduling, state management, queues, streams, observability) is implemented as a Module. This modular architecture means the Engine itself stays small and focused on orchestration, while Modules handle all external concerns.Documentation Index
Fetch the complete documentation index at: https://motiadev-docs-verdict-review-plan.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Built-in Modules
| Module | Provides | Config key |
|---|---|---|
| HTTP | HTTP trigger type, request/response handling | rest_api |
| Queue | Async message processing with retries | queue |
| Cron | Scheduled task execution | cron |
| State | Key-value state storage with atomic updates | state |
| Stream | Real-time data streams with WebSocket push | stream |
| PubSub | Publish/subscribe messaging | pubsub |
| Observability | Structured logging, tracing, and metrics | observability |
| Exec | Shell command execution | exec |
| Bridge | WebSocket bridge for SDK connections | bridge |
How Modules Work
A Module has two responsibilities:-
Register trigger types: A Module can introduce new ways to invoke Functions. For example, the HTTP module registers the
httptrigger type, and the Cron module registers thecrontrigger type. -
Supply Context: A Module can add capabilities to the Context object that gets passed to every Function. For example, the State module adds
state::get,state::set, and other state operations.
config.yaml (the engine default). Use -c iii-config.yaml to specify a custom path:
You can build your own Modules to integrate any service or infrastructure. See Custom Modules for a detailed guide.