iii-config.yaml without touching application code.
Pattern
class— the full adapter pathconfig— adapter-specific config (omit if not needed)
Adapter Reference
Queue
modules::queue::BuiltinQueueAdapter
Default. In-process only with retries and DLQ — does not share messages across engine instances.
modules::queue::RedisAdapter
modules::queue::RabbitMQAdapter
For retry behavior, dead-letter queues, and full config reference, see the Queue module.
State
modules::state::adapters::KvStore
Default. Supports in-memory or file-based persistence.
modules::state::adapters::RedisAdapter
modules::state::adapters::Bridge
Forwards state operations to a remote iii Engine.
Stream
modules::stream::adapters::KvStore
Default. In-process only.
modules::stream::adapters::RedisAdapter
Cron
modules::cron::KvCronAdapter
Default. Process-local locks — jobs may run on every instance in multi-instance deployments.
modules::cron::RedisCronAdapter
Distributed locking via Redis — ensures each job runs only once across all instances.
PubSub
modules::pubsub::LocalAdapter
Default. In-process broadcast — subscribers must be in the same engine process.
modules::pubsub::RedisAdapter
Choosing an Adapter
Use
${VAR:default} syntax in iii-config.yaml to switch adapters per environment without changing the file: