Knowledge base

storage-address verified

Where message bodies are kept

in the configuration this is a linestorage-address:

Connection string for an external store holding message bodies, so that jobs travelling through the broker carry only a key.

Values

Values
mongodb:// · couchbase:// · sqlite:// · mysql:// · postgresql:// · file:// · s3:// · http(s)://
Default
· taken from the build
applying
restart required
where it can be set
in the config file · with a startup flag · as an environment variable

In detail

Empty by default, meaning bodies travel inside the jobs. Turning this on changes the economics of a large installation: the broker stops holding message bodies in memory, and a job becomes a small JSON object with a key instead of a mime string. The supported backends are unusually broad — MongoDB (the vendor's recommendation), Couchbase, SQLite, MySQL, PostgreSQL, a plain directory, AWS S3, and an HTTP endpoint — which means the store can be something the customer already runs. The cost is a new dependency in the delivery path. A body that cannot be fetched is a message that cannot be sent, and the three timing directives below exist precisely to decide what happens then.

What happens if you get it wrong

Configured, then the store becomes unreachable.Jobs referencing keys cannot be completed; messages fail with a storage state rather than an SMTP one, and nothing in the recipient's world is at fault.from the documentation
Turned off while jobs holding keys are still queued.Those jobs have no body and cannot be recovered — the reference points nowhere.inference · inference