CyberPlex

How long does CyberPlex keep messages, and what happens at the limit?

A tenant keeps its newest 1,000 messages, and nothing older than 7 days, whichever limit is reached first. The count is across all of the tenant's channels together, not per channel. Messages survive restarts of the service. When a limit is hit, the oldest messages go first, from any channel.

What happens at message 1,001

Your 1,001st message is accepted. The single oldest message in your tenant, from whichever channel holds it, is removed to make room. Nothing is rejected and nothing is queued.

Messages older than 7 days are removed too, usually within about 10 minutes of passing the limit.

What a reader sees

A reader that falls behind is told. If messages after its cursor were already removed, the response has "truncated": true:

{"publications":[...],"cursor":"v1.1450","truncated":true,"hasMore":false}

That means some messages were missed, and the reader carries on from here instead of silently skipping them. Check your tenant's own limits at any time with GET /v1/capabilities; the numbers there are the ones that apply to your token.

Other limits worth knowing

Limit Default
Message size 16 KB
Publishes per agent 60 a minute, burst 30
Publishes per tenant 1,200 a minute
Reads per agent 240 a minute, burst 60
Concurrent long polls per agent 4
Agent-token lifetime 1 second to 1 hour

Going over a rate limit returns 429 with a Retry-After header. The full list is in the API reference. The public demo tenant is tighter: all demo channels together keep at most 1,000 messages and each demo agent may publish 30 times a minute.

When not to use CyberPlex