Production Checklist
Tick every line before a cluster carries traffic you care about. Each item names what to check, why it matters, and how to verify it.
Most items are configuration decisions already frozen in the allowlist — this page is where they get applied together, in the order that fails cheapest first.
1. Network exposure
- [ ]
listen_peeris firewalled from the internet. It carries replication traffic with an independent shared secret and no client authentication. Exposing it is the single worst mistake available. - [ ]
listen_adminbinds127.0.0.1. The metrics surface has no authentication in v0 — a wider bind publishes your queue depths and topology to whoever can reach the port. - [ ]
listen_clientbinds what you intend.0.0.0.0is correct only behind a firewall or a private network. - [ ]
ws_originsis an explicit list, not empty. Empty rejects every origin (safe, but the browser demo will not work); it is never "allow all".
bash
# verify from outside the host
ss -tlnp | grep -E '7188|7189|7190'
# expect: 7188 client-facing, 7189 peer-only, 7190 on 127.0.0.12. Identity and access
- [ ] Each node has a distinct
node_idand shares an identicalpeerstable. - [ ] The token is provisioned out of band and stored server-side only as a
SHA-256digest. - [ ] You accept that v0 has no authorization. Any client holding the token can publish to and consume from any topic. If that is not acceptable, v0 is not — see Security.
- [ ] You accept that v0 has no TLS. On an untrusted network, tunnel it.
3. Storage and capacity
- [ ] One
data_dirper node, on separate failure domains. Shared volumes corrupt each other's segments. - [ ] Disk sized for the whole retention window — because there is no retention. v0 does not truncate logs or run an automatic retention executor.
data_dirgrows until it fills, and a full disk is an availability outage, not a graceful degradation. Planexpected_throughput × daysbefore launch and alert well before 100%. - [ ] The filesystem supports fsync semantics you expect. Durability rests on
fsync; network filesystems that acknowledge without flushing break the guarantee silently. - [ ] Sustained write throughput fits the fsync budget. The design budget is
P50 ≤ 1.5 ms / P99 ≤ 5 msend-to-end with NVMe fsync dominating — verify against your hardware, do not assume.
4. Monitoring and alerting
- [ ]
/metricsscraped andmetrics_enabled=true. - [ ] Alert on
mortarmq_quorum_state != 0— this is the page-the-oncall signal. Level1is a warning (one follower lagging), level2is read-only. - [ ] Alert on
mortarmq_group_laggrowing monotonically — a consumer that has stopped, not a slow one. - [ ] Alert on disk usage, since nothing will reclaim it automatically.
- [ ] Check the conservation identity daily rather than trusting individual counters:
produced = delivered + dropped + dlq + Δdepth - [ ]
mortarmq_partition_last_seqdecreasing is an incident, not a blip — the design calls a decreasefatal.
5. Failure handling
- [ ] Runbook RB-1 is printed or pinned — quorum loss is the first thing that happens at 3 a.m., and the correct response is do not restart the leader.
- [ ] You know the difference between level 0 (soft timeout) and level 0 (no follower) — the second needs a repaired follower before writes resume.
- [ ]
data/metadata/quarantine/is monitored. Quarantine is deliberate and never auto-replayed; a human reconciles. - [ ] A
kill -9drill has been run at least once, andleader getafterwards showed an epoch bump, not data loss.
6. Upgrades
- [ ] Downgrade pre-check understood before the first upgrade — case R2 refuses an incompatible downgrade by design.
- [ ] You know which tier you are in (compatible vs incompatible). This decides whether a rollback is even possible.
7. Backups
- [ ] The metadata log and its snapshots are backed up —
data/metadata/holds cluster truth (topics, groups, leaders). - [ ] Segment backups are a decision, not a default. Backing up segments doubles write amplification; most teams instead rely on replication and accept that a full-cluster loss requires a rebuild. Choose consciously.
Without code yet
No item here has been exercised. The checklist is assembled from frozen design decisions, and every item that has a verification command is one the broker owes you when it ships.
Related
- Every key referenced above: Configuration
- What to do when an alert fires: Runbook
- Metrics and their meaning: Metrics