awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
Shopify avatar

Shopify/sarama

0
View on GitHub↗
12,490 stars·1,843 forks·Go·MIT·17 views

Sarama

Sarama is a Go client library for producing and consuming messages from Apache Kafka clusters. It provides dedicated interfaces for a message producer to send typed data packets and a message consumer to read and process continuous data streams from Kafka topics.

The library includes a mocking framework and simulation layer that mimics Kafka broker behavior. These tools allow for the testing of client applications and messaging logic without requiring a live cluster.

The project handles cluster connectivity and integration through the implementation of the Kafka binary protocol over TCP. It covers the management of cluster metadata, partition state, and asynchronous event production.

Features

  • Kafka Client Libraries - Provides a comprehensive Go library for producing and consuming messages from Apache Kafka clusters.
  • Distributed Messaging - Provides a typed client for sending data packets to a distributed message cluster for asynchronous communication.
  • Go Libraries - Implemented as a library for the Go programming language to interact with Kafka clusters.
  • Partition Offset Management - Tracks offset positions and partition assignments locally to manage data consumption and ensure ordered message processing.
  • Message Broker Connectivity - Establishes communication between an application and a distributed Kafka cluster to exchange event streams.
  • Distributed Messaging - Provides capabilities for reading and processing continuous data streams from a distributed Kafka cluster.
  • Binary Protocols - Implements the Kafka wire protocol by encoding and decoding binary messages over raw TCP sockets.
  • Message Broker Consumers - Implements a streaming interface for reading and processing continuous data streams from Kafka topics.
  • Message Broker Producers - Provides a client implementation for sending typed data packets to a distributed Kafka message cluster.
  • Topic Message Listeners - Provides mechanisms for reading and processing continuous data streams from Kafka topics to trigger application logic.
  • Asynchronous Message Production - Enables decoupled communication between microservices by sending data packets asynchronously to a Kafka cluster.
  • Cluster Topology Caching - Maintains a local cache of broker and partition leader maps to route requests efficiently without repeated network lookups.
  • Message Batching - Implements internal buffering to collect multiple outgoing messages, reducing network overhead and increasing producer throughput.
  • Asynchronous Producer Pipelines - Utilizes Go channels to asynchronously dispatch messages to different partition leaders across concurrent routines.
  • Dependency Mocking - Uses Go interfaces to decouple the client logic from the network layer for simulating broker behavior during tests.
  • Cluster Integration Testing - Simulates cluster behavior with mock components to validate messaging logic without requiring a live broker.
  • Mocking Frameworks - Provides a set of tools and simulation layers to mimic Kafka broker behavior for testing client applications.
  • Message Queues - Client library for Apache Kafka.
  • Messaging and RPC - A client library for Apache Kafka.
  • Message Queues and Brokers - Library for interacting with Apache Kafka clusters.
  • Messaging Systems - Library for interacting with Apache Kafka.
  • Messaging Systems - Apache Kafka client library.

Star history

Star history chart for shopify/saramaStar history chart for shopify/sarama

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Sarama

Similar open-source projects, ranked by how many features they share with Sarama.
  • confluentinc/confluent-kafka-goconfluentinc avatar

    confluentinc/confluent-kafka-go

    5,144View on GitHub↗

    This is a Go language client library for Apache Kafka, providing the tools necessary to produce and consume messages from Kafka brokers. It serves as a Kafka client implementation for building applications that integrate with Kafka for real-time data streaming and messaging. The library includes support for validated cryptographic modules to ensure network connections meet federal security and encryption standards for FIPS compliance. The client provides capabilities for asynchronous message production with delivery reports and message consumption using balanced consumer groups and regex sub

    HTMLconfluentconsumergolang
    View on GitHub↗5,144
  • nats-io/nats-servernats-io avatar

    nats-io/nats-server

    20,076View on GitHub↗

    NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t

    Gocloudcloud-computingcloud-native
    View on GitHub↗20,076
  • nsqio/nsqnsqio avatar

    nsqio/nsq

    25,738View on GitHub↗

    NSQ is a distributed, brokerless messaging platform designed for high-throughput, fault-tolerant communication. By utilizing a decentralized topology, it eliminates single points of failure and allows for horizontal scaling across clusters. The system organizes message streams into topics and channels, effectively decoupling producers from consumers to support both streaming and job-oriented workloads. The platform distinguishes itself through a lookup-service-based discovery mechanism that enables clients to dynamically locate producers at runtime without requiring centralized coordination.

    Godistributed-systemsgomessage-queue
    View on GitHub↗25,738
  • segmentio/kafka-gosegmentio avatar

    segmentio/kafka-go

    8,581View on GitHub↗

    Kafka library in Go

    Goconsumergogolang
    View on GitHub↗8,581
See all 30 alternatives to Sarama→

Frequently asked questions

What does shopify/sarama do?

Sarama is a Go client library for producing and consuming messages from Apache Kafka clusters. It provides dedicated interfaces for a message producer to send typed data packets and a message consumer to read and process continuous data streams from Kafka topics.

What are the main features of shopify/sarama?

The main features of shopify/sarama are: Kafka Client Libraries, Distributed Messaging, Go Libraries, Partition Offset Management, Message Broker Connectivity, Binary Protocols, Message Broker Consumers, Message Broker Producers.

What are some open-source alternatives to shopify/sarama?

Open-source alternatives to shopify/sarama include: confluentinc/confluent-kafka-go — This is a Go language client library for Apache Kafka, providing the tools necessary to produce and consume messages… nats-io/nats-server — NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge… nsqio/nsq — NSQ is a distributed, brokerless messaging platform designed for high-throughput, fault-tolerant communication. By… segmentio/kafka-go — Kafka library in Go. dpkp/kafka-python — kafka-python is a pure-Python client library for Apache Kafka that implements the Kafka wire protocol directly,… airtai/faststream — FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified…