Skip to main content
Each iii worker that needs persistence or distribution uses an adapter — a pluggable backend that implements a fixed interface. Swap adapters in iii-config.yaml without touching application code.

Pattern

Every adapter entry has two fields:
  • name — the adapter short name
  • config — adapter-specific config (omit if not needed)

Adapter Reference

Queue

builtin

Default. In-process only with retries and DLQ — does not share messages across engine instances.

redis

rabbitmq

For retry behavior, dead-letter queues, and full config reference, see the Queue worker.

State

kv

Default. Supports in-memory or file-based persistence.

redis

bridge

Forwards state operations to a remote iii Engine.

Stream

kv

Default. In-process only.

redis


Cron

kv

Default. Process-local locks — jobs may run on every instance in multi-instance deployments.

redis

Distributed locking via Redis — ensures each job runs only once across all instances.

PubSub

local

Default. In-process broadcast — subscribers must be in the same engine process.

redis


Choosing an Adapter

Use ${VAR:default} syntax in iii-config.yaml to switch adapters per environment without changing the file: