packages feed

kafka-effectful-0.2.0.0: src/Kafka/Effectful/Producer.hs

module Kafka.Effectful.Producer (
    -- * Effect
    KafkaProducer,

    -- * Interpreter
    runKafkaProducer,

    -- * Operations
    produceMessage,
    produceMessage',
    produceMessageSync,
    produceMessageBatch,
    flushProducer,

    -- * Transactions
    initTransactions,
    beginTransaction,
    commitTransaction,
    abortTransaction,
    commitOffsetMessageTransaction,
    TxError,
    getKafkaError,
    kafkaErrorIsFatal,
    kafkaErrorIsRetriable,
    kafkaErrorTxnRequiresAbort,

    -- * Raw handle escape hatch
    askProducerHandle,

    -- * Types
    ProducerRecord (..),
    ProducePartition (..),
    DeliveryReport (..),
    ImmediateError (..),

    -- * Configuration
    ProducerProperties (..),
    K.brokersList,
    K.setCallback,
    K.logLevel,
    K.compression,
    K.topicCompression,
    K.sendTimeout,
    K.statisticsInterval,
    K.extraProps,
    K.extraProp,
    K.suppressDisconnectLogs,
    K.extraTopicProps,
    K.debugOptions,

    -- * Callbacks
    K.deliveryCallback,
    K.errorCallback,
    K.logCallback,
    K.statsCallback,
    K.Callback,

    -- * Common Types
    KafkaError (..),
    TopicName (..),
    BrokerAddress (..),
    Timeout (..),
    KafkaLogLevel (..),
    KafkaDebug (..),
    KafkaCompressionCodec (..),
    Headers,
    headersFromList,
    headersToList,
    Offset (..),
)
where

import Kafka.Effectful.Producer.Effect (
    KafkaProducer,
    abortTransaction,
    askProducerHandle,
    beginTransaction,
    commitTransaction,
    flushProducer,
    initTransactions,
    produceMessage,
    produceMessage',
    produceMessageBatch,
    produceMessageSync,
 )
import Kafka.Effectful.Producer.Interpreter (runKafkaProducer)
import Kafka.Effectful.Producer.Transaction (commitOffsetMessageTransaction)
import Kafka.Producer.ProducerProperties (ProducerProperties (..))
import Kafka.Producer.ProducerProperties qualified as K
import Kafka.Producer.Types (DeliveryReport (..), ImmediateError (..), ProducePartition (..), ProducerRecord (..))
import Kafka.Transaction (
    TxError,
    getKafkaError,
    kafkaErrorIsFatal,
    kafkaErrorIsRetriable,
    kafkaErrorTxnRequiresAbort,
 )
import Kafka.Types (BrokerAddress (..), Headers, KafkaCompressionCodec (..), KafkaDebug (..), KafkaError (..), KafkaLogLevel (..), Timeout (..), TopicName (..), headersFromList, headersToList)

-- Offset is in Consumer.Types
import Kafka.Consumer.Types (Offset (..))