Skip to content
This repository was archived by the owner on Jan 1, 2025. It is now read-only.

wopehq/kafka-do

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c974f94 · Aug 22, 2022

History

81 Commits
Sep 21, 2021
Sep 21, 2021
Jul 8, 2021
Jul 8, 2021
Sep 21, 2021
Aug 22, 2022
Sep 29, 2021
Sep 30, 2021
Aug 22, 2022
Sep 23, 2021
Sep 30, 2021
Sep 30, 2021

Repository files navigation

kafka-do

v0.3.4

kafka-do

Go Reference

What

Higher level abstraction for franz-go.

Why

We want to be able to write our kafka applications without making the same things over and over.

Batch Consume
Consume messages as much as you defined.

Batch Produce
Produce messages as a batch to a topic.

Example

For e2e example, check here.

	producer, err := kafka.NewProducer("127.0.0.1:9092")
	if err != nil {
		log.Fatal(err)
	}
	defer producer.Close()

	producer.Produce(context.Background(), []kafka.Message{
		kafka.Message("message 1"),
		kafka.Message("message 2"),
		kafka.Message("message 3"),
		kafka.Message("message 4"),
	}, "messages")

	consumer, err := kafka.NewConsumer("kafka_do", []string{"messages"}, []string{"127.0.0.1:9092"})
	if err != nil {
		log.Fatal(err)
	}
	defer consumer.Close()

	messages, errs := consumer.ConsumeBatch(context.Background(), 2)
	for _, message := range messages {
		log.Println(message)
	}

	for _, err := range errs {
		log.Println(err)
	}

Development

To run tests, start a kafka that runs on ":9092".

go test ./... -v -cover -count=1 -race