flink-statefulfun-0.2.0.0: src/Network/Flink/Kafka.hs
-- | Kafka specific functions
module Network.Flink.Kafka (kafkaRecord) where
import Data.ProtoLens (Message, defMessage, encodeMessage)
import Data.Text (Text)
import Lens.Family2 ((&), (.~))
import qualified Proto.Kafka as Kafka
import qualified Proto.Kafka_Fields as Kafka
-- | Takes a `topic`, `key`, and protobuf `value` to construct 'KafkaProducerRecord's for egress
kafkaRecord ::
(Message v) =>
-- | Kafka topic
Text ->
-- | Kafka key
Text ->
-- | Kafka value
v ->
Kafka.KafkaProducerRecord
kafkaRecord topic k v =
defMessage
& Kafka.topic .~ topic
& Kafka.key .~ k
& Kafka.valueBytes .~ encodeMessage v