- A tiny wrapper around sarama topic and consumer.
go get -u https://github.com/rafaeljesus/kafka-event-bus
export KAFKA_URL=localhost:9093
The kafka-event-bus package exposes a interface for emitting and listening events.
import "github.com/rafaeljesus/kafka-event-bus"
topic := "events"
var event struct{}
eventBus, _ := eventbus.NewEventBus()
e := event{}
if err := eventBus.Emit(topic, &e); err != nil {
// handle failure to emit message
}
import "github.com/rafaeljesus/kafka-event-bus"
topic := "events"
metricsChannel := "metrics"
notificationsChannel := "notifications"
eventBus, _ := eventbus.NewEventBus()
if err := eventBus.On(topic, metricsHandler); err != nil {
// handle failure to listen a message
}
if err := eventBus.On(topic, notificationsHandler); err != nil {
// handle failure to listen a message
}
func metricsHandler(payload []byte) (error) {
e := event{}
if err := json.Unmarshal(payload, &e); err != nil {
// handle failure
}
// handle message
return nil
}
func notificationsHandler(payload []byte) (interface{}, error) {
e := event{}
if err := json.Unmarshal(payload, &e); err != nil {
// handle failure
}
// handle message
return nil
}
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
GitHub @rafaeljesus  · Medium @_jesus_rafael  · Twitter @_jesus_rafael