Rules for streams
Last updated 29 October 2026
Check your writers and readers against these rules before you rely on them: each one keeps messages from being lost or doubled, keys narrow, or the bill small.
Each rule links to its page, which shows what to send and what not to.
Writers
- Send producer headers with every append
- When an answer is lost, send the same request again
- Give each writer its own producer id, and stop when refused
- Batch small messages into one append
- Close a stream when its writer is done, and let runs expire
Readers
- Keep offsets exactly as the stream returns them
- Read until the answer is up to date
- Save a reader’s offset with what it did
- Reopen a tail from the last offset it gave you
- Guard against a stream deleted and created again
- Publish a snapshot, check it, then advance retention