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-rabbit and demo-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/.