Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

KIP index

All KIPs the codebase references, split honestly: implemented, partial, or deliberate non-goal.

The split below is source-verified, not aspirational: "implemented" means the behaviour ships and is exercised by tests or the shell-tool suite; "partial" pages lead with what's missing; non-goals get a rationale in Non-goals, not silence.

Three corrections relative to earlier planning documents, all found by source-verifying during the book build: KIP-516, KIP-32, KIP-58, and KIP-354 are partial, not implemented. Topic IDs are minted but not propagated to the wire; LogAppendTime and timestamp lookup don't exist; and the two compaction knobs are config plumbing without an enforcing compactor (no background cleaner runs at all — gh #158).

Implemented (12)

KIPWhat it iskaas page
KIP-13Per-broker client quotas (byte-rate throttling)KIP-13
KIP-98Exactly-once: idempotent producer + transactionsKIP-98
KIP-107DeleteRecords admin API (key 21)KIP-107
KIP-195CreatePartitions admin API (key 37)KIP-195
KIP-290Prefixed ACL resource patternsKIP-290
KIP-339IncrementalAlterConfigs (key 44)KIP-339
KIP-360Producer epoch bump on re-initializationKIP-360
KIP-371mTLS principal mapping (ssl.principal.mapping.rules)KIP-371
KIP-447EOS v2: producer-scalable transactional offsetsKIP-447
KIP-482Flexible versions + tagged fieldsKIP-482
KIP-546Client-quota admin APIs (keys 48/49)KIP-546
KIP-800Join/leave reason stringsKIP-800

Partial (9)

Each page leads with the "what's missing" block — these are the book's credibility test.

KIPLandedMissingkaas page
KIP-32CreateTime timestamps round-trip byte-identically; batch MaxTimestamp tracked per segmentLogAppendTime entirely; timestamp→offset ListOffsets lookup ((-1,-1) sentinel)KIP-32
KIP-58min.compaction.lag.ms config plumbing (CR → .config.json → DescribeConfigs)the compactor that would enforce it — no background cleaner runs (gh #158)KIP-58
KIP-101segment filenames carry the leader epochleader-epoch cache + lookup (offset_for_leader_epoch returns the (-1,-1) sentinel); wire key 23 unregisteredKIP-101
KIP-219throttle_time_ms computed (debt-carry) and returnedthe broker never mutes the channel after responding — throttling relies on client cooperationKIP-219
KIP-345group.instance.id plumbed through join/sync; static members survive the eviction sweepFENCED_INSTANCE_ID fencing of duplicate static membersKIP-345
KIP-354delete.retention.ms config plumbingtombstone-expiry enforcement (same missing compactor); upstream's max.compaction.lag.ms doesn't exist anywhereKIP-354
KIP-394MEMBER_ID_REQUIRED error code definedthe v4+ two-step join handshake — join() still takes the legacy assign-inline pathKIP-394
KIP-516operator mints Status.TopicID (v4 UUID, never rotated)broker-side wire propagation — the production topic watch inserts the all-zero sentinel, so Metadata serves nil topic IDsKIP-516
KIP-554operator-side SCRAM credential rotation pathwire keys 50/51 entirely — no codec modules, no dispatchKIP-554

Deliberate non-goals (8)

Rationale for each in Non-goals.

KIPWhat it isWhy not
KIP-48Delegation tokensno token-based auth surface; SCRAM/mTLS cover the deployment model
KIP-227Incremental fetch sessionsstateless by contract: SessionID=0 on every response
KIP-405Tiered storagedeferred, not refused — the NFS substrate is already a near-tier
KIP-664Describe/ListTransactions toolingfollow-up; slot files are directly inspectable meanwhile
KIP-714Client metrics pushout of scope for the preview line
KIP-848Next-gen consumer rebalance protocolpost-3.7
KIP-932Share groups (queues)Kafka 4.0+
KIP-1071Streams rebalance protocolpost-3.7