module Kafka.Settings
( Settings (..),
decoder,
BatchNumMessages,
unBatchNumMessages,
exampleBatchNumMessages,
)
where
import qualified Environment
import qualified Kafka.Producer
import qualified Kafka.Settings.Internal as Internal
data Settings = Settings
{
Settings -> [BrokerAddress]
brokerAddresses :: [Kafka.Producer.BrokerAddress],
Settings -> KafkaLogLevel
logLevel :: Internal.KafkaLogLevel,
Settings -> Timeout
deliveryTimeout :: Kafka.Producer.Timeout,
Settings -> BatchNumMessages
batchNumMessages :: BatchNumMessages
}
newtype BatchNumMessages = BatchNumMessages {BatchNumMessages -> Int
unBatchNumMessages :: Int}
exampleBatchNumMessages :: BatchNumMessages
exampleBatchNumMessages :: BatchNumMessages
exampleBatchNumMessages = Int -> BatchNumMessages
BatchNumMessages Int
1
decoder :: Environment.Decoder Settings
decoder :: Decoder Settings
decoder =
([BrokerAddress]
-> KafkaLogLevel -> Timeout -> BatchNumMessages -> Settings)
-> Decoder [BrokerAddress]
-> Decoder KafkaLogLevel
-> Decoder Timeout
-> Decoder BatchNumMessages
-> Decoder Settings
forall (m :: * -> *) a b c d value.
Applicative m =>
(a -> b -> c -> d -> value) -> m a -> m b -> m c -> m d -> m value
map4
[BrokerAddress]
-> KafkaLogLevel -> Timeout -> BatchNumMessages -> Settings
Settings
Decoder [BrokerAddress]
Internal.decoderBrokerAddresses
Decoder KafkaLogLevel
Internal.decoderKafkaLogLevel
Decoder Timeout
decoderDeliveryTimeout
Decoder BatchNumMessages
decoderBatchNumMessages
decoderDeliveryTimeout :: Environment.Decoder Kafka.Producer.Timeout
decoderDeliveryTimeout :: Decoder Timeout
decoderDeliveryTimeout =
Variable -> Parser Timeout -> Decoder Timeout
forall a. Variable -> Parser a -> Decoder a
Environment.variable
Variable :: Text -> Text -> Text -> Variable
Environment.Variable
{ name :: Text
Environment.name = Text
"KAFKA_DELIVERY_TIMEOUT",
description :: Text
Environment.description = Text
"Delivery timout for producer. Aka 'delivery.timeout.ms'",
defaultValue :: Text
Environment.defaultValue = Text
"120000"
}
((Int -> Timeout) -> Parser Int -> Parser Timeout
forall (m :: * -> *) a value.
Functor m =>
(a -> value) -> m a -> m value
map Int -> Timeout
Kafka.Producer.Timeout Parser Int
forall a. Integral a => Parser a
Environment.int)
decoderBatchNumMessages :: Environment.Decoder BatchNumMessages
decoderBatchNumMessages :: Decoder BatchNumMessages
decoderBatchNumMessages =
Variable -> Parser BatchNumMessages -> Decoder BatchNumMessages
forall a. Variable -> Parser a -> Decoder a
Environment.variable
Variable :: Text -> Text -> Text -> Variable
Environment.Variable
{ name :: Text
Environment.name = Text
"KAFKA_BATCH_SIZE",
description :: Text
Environment.description = Text
"Kafka Producer 'batch.num.messages'",
defaultValue :: Text
Environment.defaultValue = Text
"10000"
}
((Int -> BatchNumMessages) -> Parser Int -> Parser BatchNumMessages
forall (m :: * -> *) a value.
Functor m =>
(a -> value) -> m a -> m value
map Int -> BatchNumMessages
BatchNumMessages Parser Int
forall a. Integral a => Parser a
Environment.int)