sarama
DISCONTINUED
go-events
Our great sponsors
sarama | go-events | |
---|---|---|
20 | 2 | |
10,115 | 95 | |
- | - | |
8.6 | 0.0 | |
9 months ago | 12 months ago | |
Go | Go | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sarama
-
Ingesting Data into OpenSearch using Apache Kafka and Go
Note: Since there are multiple Go clients for Kafka (including Sarama), please make sure to consult their client documentation to confirm whether they support IAM authentication.
-
book about golang and kafka
You might want to gradually replace that one with https://github.com/twmb/franz-go because Shopify is looking to find a new owner for Sarama and, until or if they do, it seems to be falling behind with maintenance: https://github.com/Shopify/sarama/issues/2461 For example, they still haven’t addressed this breaking change https://github.com/Shopify/sarama/issues/2358. franz-go has worked well so far in Benthos https://github.com/benthosdev/benthos/tree/main/internal/impl/kafka and it will likely end up as the only implementation once the Sarama-based one will be deprecated
-
Klient - a native, statically-compiled, command line client for Kafka
I've used mainly sarama wrapped with a bit of bespoke helper libraries. Never really looked into others, just grabbed one that was actively maintained and went for it.
-
Golang bad design reference
Well, as someone who reviews a lot of code, I don't like seeing 100s of little files when a handful of logically grouped files would do. For example, this popular go project: https://github.com/Shopify/sarama is currently 256 small .go files, largely following a one class/file rule.
-
Concurrency in Go is hard
The first example is something we ran into while working on a project. Up until recently, the sarama library (Go library for Apache Kafka) contained the following piece of code (at sarama/version.go):
-
Benthos - Fancy stream processing made operationally mundane
If you find the kafka input slow, try kafka_franz. It might be a bit faster, since it’s based on https://github.com/twmb/franz-go. The kafka one is based on https://github.com/Shopify/sarama. You can also write a custom input based on https://github.com/confluentinc/confluent-kafka-go, but this library relies on CGo, which can be annoying.
- Understanding Kafka with Factorio
-
Is segmentio/kafka-go production ready ?
There are a few factors that are stopping me from using kafka-go over Shopify's sarama.
- Is there an alternative to Kafka that has better support in Rust?
-
Kafka manual commit problem
Here are our test results to find the root cause. https://github.com/Shopify/sarama/issues/1894#issuecomment-789427055
go-events
-
Any major projects using generics?
For libraries I use at work, cmap has a v2 using generics. I think that's a fairly widely used library. The events library we use is updated, but not released. When I get a chance, planning on looking on moving to hooks, which does have released generics support.
-
Hooks: Simple, type-safe hook system for Go
Looks interesting. I was actually considering writing something like this, as we use https://github.com/kataras/go-events, which is similar, but doesn't have released generics support yet. I'll give this a try before trying to bake my own.
What are some alternatives?
Confluent Kafka Golang Client - Confluent's Apache Kafka Golang client
kafka-go - Kafka library in Go
franz-go - franz-go contains a feature complete, pure Go library for interacting with Kafka from 0.8.0 through 3.6+. Producing, consuming, transacting, administrating, etc.
librdkafka - The Apache Kafka C/C++ library
gorush - A push notification server written in Go (Golang).
Mercure - 🪽 An open, easy, fast, reliable and battery-efficient solution for real-time communications
gopush-cluster - Golang push server cluster
Benthos - Fancy stream processing made operationally mundane
pingme - PingMe is a CLI which provides the ability to send messages or alerts to multiple messaging platforms & email.
machinery - Machinery is an asynchronous task queue/job queue based on distributed message passing.
Uniqush-Push - Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices.
Centrifugo - Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.