config.yaml file.
Architecture
The iii framework uses a modular architecture where each module:- Implements the
Moduletrait - Can use different adapters for storage/communication backends
- Registers functions and triggers with the engine
- Runs independently with isolated configuration
Available Modules
Core Modules
These modules are enabled by default and provide essential functionality:HTTP
Expose functions as HTTP/REST endpoints
Queue
Asynchronous message queue with pub/sub
Cron
Schedule functions with cron expressions
Stream
Real-time WebSocket data streams
State
Persistent key-value state management
Observability
OpenTelemetry traces, metrics, and logs
Module Configuration
Modules are configured inconfig.yaml under the modules section:
config.yaml
Adapter Pattern
Most modules support pluggable adapters for different backends:- KvStore - File-based or in-memory storage (default)
- RedisAdapter - Redis backend for distributed systems
- Custom - Implement your own adapter
Module Lifecycle
- Create - Module is instantiated with configuration
- Initialize - Registers functions and triggers
- Start - Background tasks begin (optional)
- Destroy - Cleanup on shutdown
Common Patterns
Triggers
Modules register trigger types that invoke functions based on events:Functions
Modules expose functions callable via SDK or other modules:Next Steps
HTTP Module
Learn about REST API endpoints
Custom Modules
Build your own modules