Skip to main content

Retention

Retention is the only eraser. An acknowledgement advances a cursor; it does not delete the message. The log is kept for a topic's retention window, which is what makes replay (Start: "earliest") and fan-out subscriptions possible.

Retention is set per topic (in whole days) at create time and can be changed later. It is time-based, applied by the engine on a partition granularity — not ack-based.

Retention vs. un-acked messages

Because retention is time-based, a message that sits un-acknowledged longer than its topic's retention is erased by the engine along with the acknowledged ones. For a durable work queue whose consumer may be down for a while, size the retention to cover the longest tolerable outage.

AMQP queues get a configurable default retention (amqp_queue_retention_days, default 7) precisely so an un-acked durable message survives a down consumer for at least that window. Raise it for longer-outage tolerance.

Cursor-aware retention — expiring only below the lowest un-acked cursor — is a planned engine feature that removes this ceiling. Until then, retention is the knob.

No manual deletion

There is no "purge" verb. Accumulated data is bounded by retention and by read-side limits (paging), never by a destructive admin action.