Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
c240bb6
post 4: stub with section outline for topic weaving post
SamBarker Oct 28, 2026
e969553
post 4: draft intro for topic weaving
SamBarker Oct 28, 2026
7fc8de1
post 4: refine intro
SamBarker Oct 28, 2026
5f8d789
post 4: ramp into topic weaving and add client-knowledge section
SamBarker Oct 29, 2026
f69c8df
post 4: add transactions and KIP-939 sections
SamBarker Oct 29, 2026
d723037
post 4: add 'Whose map is it anyway?' and router jobs sections
SamBarker Oct 31, 2026
40e98aa
post 4: add broker ID collision section
SamBarker Nov 1, 2026
9450280
post 4: add 'Writing to the map' section on admin operations
SamBarker Nov 1, 2026
93021ee
post 4: add producer ID section and tie the boss cluster through tran…
SamBarker Nov 1, 2026
996cc9b
post 4: define boss cluster concept and store-vs-participant test
SamBarker Nov 1, 2026
921aa3d
post 4: add proxy placement section
SamBarker Nov 2, 2026
d29f2fd
Add 'Know when to get off the train' section to topic weaving post
SamBarker Nov 2, 2026
139afc6
Add closing section and partition weaving teaser
SamBarker Nov 2, 2026
1c3ee2d
Remove TODO list and stash notes; refine community invite
SamBarker Nov 2, 2026
44a7557
Post 4: consistency and voice pass
SamBarker Nov 2, 2026
c371096
update stash
SamBarker Nov 2, 2026
b2a3282
remove cruft
SamBarker Nov 2, 2026
19e5476
Fix stream-branching post slug (date changed to 2026-10-29 before merge)
SamBarker Nov 2, 2026
6495ae7
Topic weaving: restructure sections and sharpen sorting office analogy
SamBarker Nov 2, 2026
89a890e
Add consumer groups section to topic weaving post
SamBarker Nov 2, 2026
7a53446
Update publication date/time to 2026-11-02 15:00 PST
SamBarker Nov 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions _drafts/stash-replica-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,6 @@ The PID argument bites on the produce side only. The consume side works without
TODO: link the Gemini doc from the weaving post: <https://docs.google.com/document/d/1ShcWeGuP1kMAzqFtEmjuIIAMJJre0Uy4bzkWm3bZbZ8/edit?usp=sharing>

Point to make: KIP-939 (two-phase commit support) still does not fix this. If we went anywhere near it we would be in full distributed consensus pain. Not read or verified yet. Summarise from the doc before quoting, and check its claims against the KIP.

## Topic ID is also temporal
1. Topic IDs / UUIDs (KIP-516)At first glance, a Topic ID looks spatial (it’s just a coordinate for a topic). But it is actually a temporal lifecycle marker generated by the KRaft controller.The Semantics: If you delete a topic and recreate it with the same name, it gets a new UUID to prevent zombie delayed fetches from corrupting the new log.Why it breaks stateless math: You can mathematically fake a Node ID using $V = id + S \times t$ because Node IDs are predictable integers. You cannot mathematically derive a random backend UUID from a frontend virtual UUID.The Proxy Seam: To support API versions v13+ (where Produce and Fetch requests use UUIDs instead of strings), the proxy must maintain a stateful [Virtual Topic UUID -> Physical Topic UUID] mapping table in memory. If a proxy replica restarts and loses that map, it cannot route the frame. This is exactly why a proxy might intentionally cap PRODUCE API versions to v12—forcing clients to use string names—just to avoid handling cluster-specific Topic IDs.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: fetches don't mutate the transaction log in anyway.

Loading
Loading