Skip to main content

Message Storage

Rinda stores message bodies that are too large to travel on the queue itself, and keeps an archive of the messages you send so you can inspect and replay them later.

It is not a general-purpose file store. Nothing uploads to it directly — Rinda writes to it on your behalf when you send a message.

Large messages​

A queue caps a message body at 190 KB. Send something larger and Rinda stores the body and puts a reference on the queue; on receive it swaps the reference back for your payload. Your code does not change:

// 400 KB — over the queue limit, and it just works.
await rinda.queue('orders').send({ body: { report: bigJsonBlob } });

const [message] = await rinda.queue('orders').receive();
console.log(message.body.report); // the full payload, not a reference

A single body is capped at 1 MB. Past that the send is rejected rather than stored — at that size you want your own storage and a reference in the message, rather than a queue carrying the payload.

Nothing else about the message changes: ordering, deduplication, delivery counts, and dead-letter behaviour work the same whether the body travelled on the queue or beside it.

Inspecting and replaying​

Every message you send is recorded, so you can look at what was actually sent long after it was processed — including bodies that were too large for the queue. Find them under Storage in the dashboard, or on a queue's Messages tab.

How much Rinda keeps depends on the queue's persistence setting:

SettingWhat is kept
NONEOnly bodies too large to send inline — those must be stored to be sent at all
LARGE_ONLY (default)Large bodies, plus a short preview of every other message
ALLEvery message body in full

Retention​

Archived bodies are kept for a window set per account:

PlanWindow
Free7 days, fixed
Scale and Dedicated7, 15, 30, or 60 days

Change it under Settings → Retention. Expiry is asynchronous, so the guarantee is "kept for at least the window", not "deleted the instant it elapses".

Shortening the window deletes anything already past it, and downgrading a plan narrows the window to what the new plan allows — that data does not come back by upgrading again.