ss-keel-kafka
ss-keel-kafka provides Publisher and Subscriber implementations backed by franz-go, a high-performance Kafka client for Go.
Implements: Publisher / Subscriber
Planned Installation
Section titled “Planned Installation”go get github.com/slice-soft/ss-keel-kafkaPlanned Usage
Section titled “Planned Usage”import "github.com/slice-soft/ss-keel-kafka"
client, err := sskafka.Connect(sskafka.Config{ Brokers: strings.Split(os.Getenv("KAFKA_BROKERS"), ","), ConsumerGroup: "my-api",})
publisher := client.Publisher()subscriber := client.Subscriber()Publishing
Section titled “Publishing”payload, _ := json.Marshal(event)
publisher.Publish(ctx, core.Message{ Topic: "user.registered", Key: []byte(user.ID), Payload: payload,})Subscribing
Section titled “Subscribing”subscriber.Subscribe(ctx, "user.registered", func(ctx context.Context, msg core.Message) error { var user User json.Unmarshal(msg.Payload, &user) return sendWelcomeEmail(ctx, &user)})Shutdown
Section titled “Shutdown”app.OnShutdown(func(ctx context.Context) error { publisher.Close() return subscriber.Close()})Health Check
Section titled “Health Check”app.RegisterHealthChecker(sskafka.NewHealthChecker(client))// → "kafka": "UP" in GET /health