A Go client library for Apache Kafka with comprehensive API support and testing utilities.
Sarama is a Go client library for Apache Kafka that provides a complete implementation of the Kafka protocol. It enables Go applications to produce and consume messages, manage topics and partitions, and interact with Kafka clusters programmatically. The library solves the need for a reliable, production-grade Kafka integration in Go-based systems.
Go developers building distributed systems, microservices, or data pipelines that require Kafka for event streaming, message queuing, or real-time data processing.
Developers choose Sarama because it's the most comprehensive and widely-used Kafka client for Go, offering full protocol support, semantic versioning for API stability, and excellent testing utilities including mocks for isolated unit testing.
Sarama is a Go library for Apache Kafka.
Implements all Kafka API versions for producing, consuming, and administrative operations, ensuring comprehensive compatibility with Kafka clusters.
Includes a comprehensive mock framework in the mocks subpackage, enabling unit testing of Kafka interactions without a live cluster.
Follows a '2 releases + 2 months' policy for Kafka and Go version support, providing predictable upgrade paths and backward compatibility.
The tools directory contains utilities for testing, diagnostics, and instrumentation, enhancing development and operational workflows.
Requires deep understanding of Kafka's protocol and architecture, which can be challenging for developers new to distributed systems or event streaming.
Documentation is spread across pkg.go.dev, the wiki, and example directories, making it harder to find consolidated guidance for common tasks.
Exposes low-level errors from the Kafka protocol directly, necessitating custom implementation for robust error recovery, retry logic, and monitoring.
Simple, reliable, and efficient distributed task queue in Go
Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably, socket.io, Phoenix.PubSub, SignalR. Set up once and forever.
Building event-driven applications the easy way in Go.
A push notification server written in Go (Golang).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.