Narad v0.2.0-beta.1 — feature complete
Pre-releaseNarad's feature-complete milestone: the beta line begins here. Everything below is running on the dev cluster and verified end to end.
Topic fan-out (parent → child) — #68
A parent topic replicates every message into up to 108 independent child topics. Producing to a parent stays byte-for-byte a normal produce; per-(child, partition) cursors on the parent partition owners tail the committed log, re-key with each child's partitioner (per-key ordering preserved within a child), and batch-commit with a commit-before-advance at-least-once contract. Attach epochs guarantee detach/re-attach never replays. Schemas are inherited and parent-managed while attached.
Delay children — #70
Attach a child with delay_ms and every record is delivered only once parentCommitTime + delay has passed — retry-backoff tiers and scheduled reprocessing from one flag. Commit times are monotonic per partition, so the due check is a head-peek-and-sleep: O(1) while idle, pending backlog costs disk, not memory. The parent must retain delay + 1h (enforced at attach and on retention shrink); direct produce to a delayed child is rejected; narad_fanout_due_lag_seconds is the health signal.
Ack lease operations — #69
POST /ack?extend=true renews the visibility window (slow-consumer heartbeat, same receipt handle); extend=0 is a NACK — immediate redelivery under a fresh handle, waking parked long-pollers. Both share ack's validation: a lapsed lease returns 410 and can never be revived. Hot-path benchmarks unchanged.
Also in this release
- Uniform 1-hour retention floor for every topic (the fan-out/delay buffer guarantee).
- Keyed record envelope (v2): stored records carry produce key + commit timestamp; consumers now receive
Message.Keyand real commit-timeMessage.Timestamp. - New metrics: fan-out lag/committed/dropped/due-lag, batch histograms,
narad_ack_extended_total,narad_nack_total. - CLI:
topics attach [--delay-ms] / detach / children,ack --extend / --nack.
Breaking / upgrade notes
- Storage format: the partition-log record envelope changed (v2, versioned). Pre-beta partition data does not decode — wipe topic data when upgrading from any alpha build. Ingress WAL and metastore are unaffected.
- Attach/detach cluster RPCs changed shape; run homogeneous versions (no rolling mixed-version clusters across this boundary).
Verification
1424 tests green (unit, e2e, 3-node integration, chaos), race-detector clean, three adversarial review passes with all findings fixed, and full live verification on the dev cluster: 31 fan-out checks, 35 lease checks, 30 delay checks including a live 20s due-gate timing proof.