Event Patterns
What I’m planning to build
Hands-on Go CLIs that publish and consume events through RabbitMQ and Kafka (Redpanda locally). The focus is patterns — not hello-world tutorials — including dead-letter exchanges, idempotent consumers, and when to pick queues vs. logs.
Why both brokers
RabbitMQ and Kafka answer different questions. Task delivery with routing and DLQ semantics vs. durable, replayable event streams. Production migrations between them fail when teams treat them as interchangeable. I wanted a lab where I can break things cheaply and compare behavior side by side.
What it covers
- Docker Compose: RabbitMQ management + Redpanda on a local Kafka port
- Preloaded RabbitMQ definitions (DLX queues)
- Shared event envelope in Go with JSON serialization tests
- Makefile targets for
demo-rabbitanddemo-kafka
Connection to my day job
This pairs directly with my Concourse → RabbitMQ migration work and my broader study of messaging systems. Reading specs is necessary; running consumers that duplicate, reorder, or poison messages is what builds intuition.
Repo
Source lives in the sandbox monorepo under projects/event-patterns/.