Building Real-World Event Streaming Systems with Go and Kafka

    Introduction Apache Kafka is the backbone of event-driven architectures at companies like LinkedIn, Uber, and Airbnb. It lets services communicate asynchronously at massive scale — without coupling them together. Go is an excellent fit for Kafka workloads: lightweight goroutines, clean channel semantics, and minimal overhead make it easy to build high-throughput producers and consumers. This guide skips the theory-heavy basics and focuses on what you actually build. We’ll cover: Kafka’s core model in plain terms Setting up producers and consumers with kafka-go Three real-world use cases with full code and diagrams Patterns for reliability: retries, dead-letter queues, and consumer groups How Kafka Works (The Short Version) Kafka organizes data into topics. Each topic is split into partitions — ordered, immutable logs. Producers append messages to partitions. Consumers read messages from partitions at their own pace, tracking their position with an offset. ...

    March 23, 2026 · 12 min · Rafiul Alam

    Messaging Systems: A Visual Reference

    How to Read This Post Each scenario shows a diagram first, then a short note on why that system fits best. Complexity increases as you scroll. System Strength RabbitMQ Smart broker, routing flexibility, push-based delivery Kafka Immutable log, high throughput, replay from any offset JetStream NATS Lightweight persistence, built-in dedup, low operational cost Level 1 — Foundations 1. Simple Task Queue flowchart LR P[Producer] -->|task| Q[(Queue)] Q -->|deliver| C[Consumer] style P fill:#4a9eff,stroke:#2d7ed8,color:#fff style Q fill:#ff6b6b,stroke:#d44,color:#fff style C fill:#51cf66,stroke:#37b24d,color:#fff RabbitMQ. Push-based delivery with acknowledgments. Consumer confirms completion before the broker removes the message. No polling, no offset tracking — just send and ack. ...

    March 23, 2026 · 9 min · Rafiul Alam