THE LAB NOTEBOOK / Marshall MQ
Little updates.
Big plot twists.
New tricks. Fewer hiccups. The occasional “how did we live without this?” Here’s what’s happening with Marshall MQ.
4 releases23 improvements & fixesSTILL TINKERING. ALWAYS.
FIELD NOTES
LATEST CHAPTER
v0.4.0October 3, 2026Marshall MQ
4 chapters in the story so far.
Avro, read out loud
6 things to get excited about
Avro, read out loud
- He reads Avro. Give a broker its Confluent-compatible Schema Registry and every framed message opens as the record it is — timestamps as dates, decimals as numbers, enums by name.
- And objects to it like anything else: two schemas on one topic is drift, named by the field the new schema added. The shape he compares is the one the schema declares, so an optional field is one shape whether it is null or filled.
- Without a registry he says so — no registry, registry down, unknown schema id — each its own sentence. And he won't file a decoded record back onto an Avro topic.
- Consumer groups have a screen. Click one and the verdict comes before the numbers: caught up, behind and where, nobody home with work piling up, mid-rebalance and not judged yet. Then who's in it and where it stands on every topic it ever committed on.
- Moving a group's position starts from that screen, per topic, and an offset past the end of a partition is pointed out before the button.
- Pin a topic to the top; a pin the broker stops listing stays, crossed out, with the reason. Star a broker to keep it first.
Marshall made you a chart
6 things to get excited about
Marshall made you a chart
- He draws your topic: where the messages actually sit across the partitions — the one holding most of the traffic, and the one holding nothing while its neighbours are full.
- He reports on arrival: how many topics, which dead letters are loaded, which consumer groups have nobody in them, and what he could not see. Open a topic and he leaves his notes.
- He still refuses when he should. A queue has no partitions, one partition has no spread, and fourteen messages across three cannot carry a proportion — none of those are drawn as a healthy chart.
- A proper first run: six chapters, the third opens a broker for you, the last lets you pick who answers "Ask your topic" — Claude Code, Codex, or whatever is installed.
- Runs on far more Macs: macOS 14 Sonoma or later, Apple Silicon and Intel. Everything he needs to speak Kafka is inside the app.
- Fixed: testing a RabbitMQ connection spoke Kafka at it; publishing to RabbitMQ was disabled; the status dot sat grey on every connected RabbitMQ broker.
More than one broker, and more than Kafka
6 things to get excited about
More than one broker, and more than Kafka
- Open as many brokers as you like, each in its own tab.
- RabbitMQ, through the management API — queues, depths, consumers, bindings, reading and publishing. And he tells you what reading costs there before he does it.
- Brokers that want proof: SASL with PLAIN or SCRAM, TLS, both together, and mutual TLS. Passwords and key passphrases live in your Keychain.
- Put a message back, move a consumer group's position to replay — each behind a confirmation that asks why, and he refuses to move a group that is still running.
- Ask your topic through the AI CLI already signed in on your Mac.
- Navigation: seek by offset or timestamp, paging, and search inside messages.
Your queues. Lawyered.
5 things to get excited about
Your queues. Lawyered.
- Reads Kafka: every topic with the depth it actually retains, consumer lag per group, dead-letter queues sorted to the top.
- Objection: he compares the shape of every message he reads and names the ones that disagree, on the exact line.
- He says when he cannot see. A group that never committed has unknown lag, not zero.
- Reads without disturbing: never joins a group, never commits an offset, never creates a topic by asking about one.
- English and Portuguese throughout.
That plot twist is still a mystery.
Try a version number or a different keyword.
You’ve reached the beginning of the story.
We’re still writing the good bits.Back to the latest ↑