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.