Skip to content

Commit feccf8f

Browse files
tobiajoclaude
andcommitted
Rewrite Cassandra persist-only design doc around choices and learnings
Restructure docs/cassandra-single-writer-design.md to focus on why over what: brief mechanics, explicit design choices, and the learnings from the deferred full solution, mirroring the Kafka design doc's shape (Problem, mechanism, Testing, Rejected alternatives, Forward-looking): - Problem now explains why the Kafka fix does not transfer to Cassandra (no transaction to bind the offset commit into, no ownership authority), motivating a per-write, per-key fence. - The mechanism is kept brief and its three load-bearing choices are called out explicitly: per-key granularity, `<=` over `<`, and ordering by data rather than identity. - "Why the store is the whole change" makes the SnapshotFold replay dedup explicit as the property that lets persist-only ship without core changes. - A Compatibility section collects the no-API-change / no-migration / write-side-only-fence consequences. - The deferred full solution (offset-gated deletes, PR evolution-gaming#834) is retold as a forced chain - tombstone, breaking delete(key, offset) API, monotonic buffer, tombstone-floor recovery read, independent events-recovery seeding - with a livelock diagram, the TLA+ results (all defects were liveness, never safety; models in PR evolution-gaming#835), and the explicit deferral rationale (cost/benefit and KIP-939 timing). Also make the rolling-deploy clock-skew caveat in persistence.md concrete (coordinator vs client write timestamps), and update a test comment referencing a renamed doc section. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018jfVxUNrjxpcSFF2hgiar5
1 parent 42bab55 commit feccf8f

3 files changed

Lines changed: 211 additions & 137 deletions

File tree

0 commit comments

Comments
 (0)