context
A Kafka broker in Rust
Speaking enough of the wire protocol to support message consumption and partition listing.
why
Reimplementing a protocol tells you what its authors were worried about
Reading a spec tells you what a protocol does. Implementing it tells you which decisions were load-bearing and which were arbitrary — the fields that exist because of a failure mode someone hit, versus the fields that exist because of a version negotiation nobody wanted.
Kafka's request headers carry a lot of the former.