M1.1: Write KRaft consensus spec in SpeckDL #22
Labels
No labels
blocked
bug
design
docs
engineering
feature
infra
priority:high
priority:low
priority:medium
question
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: sscoble/speckl#22
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Write a complete Kafka KRaft consensus protocol specification in SpeckDL. Not a toy — the real protocol covering leader election, log replication, and metadata commits.
Scope
requireguards matching KRaft's actual preconditionsExit Criteria
Dependencies
#21 (M0.3: Z3 backend) must be complete. Need verification to validate the spec.
Context
Part of M1.1 in
docs/PROVE-KAFKA-PLAN.md. This is the flagship spec that proves Speckl works on a real system.✅ Completed. KRaft protocol reference doc written at
docs/kraft-protocol-reference.md. Covers full Raft TLA+ state machine, 10 actions, 6 safety invariants, KRaft extensions over vanilla Raft, producer ack semantics, and consumer group rebalancing scope boundary. Ready for M1.2 (write the SpeckDL spec).M1.1 already complete. KafkaKRaft.speck exists at 162 lines with 5 safety invariants (ElectionSafety, LeaderCompleteness, LogMatching, LeaderAppendOnly, TermMonotonicity), 5 actions (RequestVote, HandleRequestVoteRequest, BecomeLeader, AppendEntries, HandleAppendEntriesRequest), and 3 bounded model checking verify blocks at depth 10. Closing as done.