package krabkastreams
import "github.com/krabka-io/krabka-streams-go"
Package krabkastreams applies the client settings that a krabka streams group needs.
krabka brokers coordinate stream processing applications through the streams group protocol (KIP-1071). The only krabka-specific configuration step is to enable that protocol, which WithDefaults does for you while leaving every setting you supply untouched.
The helper operates on a plain string-keyed configuration map, the shape used by librdkafka-based clients such as confluent-kafka-go. Clients that take typed options instead can use the exported constants directly.
Index
Constants
const GroupProtocolConfig = "group.protocol"
GroupProtocolConfig is the Kafka client configuration key that selects the group protocol.
const StreamsGroupProtocol = "streams"
StreamsGroupProtocol is the group.protocol value that enables the streams group protocol.
Functions
func WithDefaults source
func WithDefaults(settings map[string]any) map[string]any
WithDefaults copies the supplied settings and adds krabka defaults. Explicit settings keep their values.
Currently the only default is GroupProtocolConfig set to
StreamsGroupProtocol. The supplied map is not modified; a nil map is
treated as empty.
Output: Output:Example
package main
import (
"fmt"
krabkastreams "github.com/krabka-io/krabka-streams-go"
)
func main() {
settings := krabkastreams.WithDefaults(map[string]any{
"bootstrap.servers": "localhost:9092",
"group.id": "order-counter",
})
fmt.Println(settings[krabkastreams.GroupProtocolConfig])
}
streams
Example (explicitSettingsWin)
package main
import (
"fmt"
krabkastreams "github.com/krabka-io/krabka-streams-go"
)
func main() {
settings := krabkastreams.WithDefaults(map[string]any{
krabkastreams.GroupProtocolConfig: "classic",
})
fmt.Println(settings[krabkastreams.GroupProtocolConfig])
}
classic