# Functions

GetAsyncProducerMock returns mocked implementation of async producer that doesn't need connection to Kafka broker and can be used for testing purposes.
GetConsumerMock returns mocked implementation of consumer that doesn't need connection to kafka cluster.
GetSyncProducerMock returns mocked implementation of sync producer that doesn't need connection to Kafka broker and can be used for testing purposes.
NewAsyncProducer returns a new AsyncProducer instance.
NewClient initializes new sarama client instance from provided config and with defined partitioner.
NewConfig return a new Config object.
NewConsumer returns a Consumer instance.
NewProtoConsumerMessage creates new instance of ProtoConsumerMessage.
NewSyncProducer returns a new SyncProducer instance.

# Constants

AcksUnset indicates that no valid value has been set.
Hash scheme (messages with the same key always end up on the same partition).
Manual scheme (partitions are manually set in the provided message's partition field).
NoResponse doesn't send any response, the TCP ACK is all you get.
Random scheme (random partition is always used).
WaitForAll waits for all replicas to commit before responding.
WaitForLocal waits for only the local commit to succeed before responding.

# Structs

AsyncProducer allows to publish message to kafka using asynchronous API.
Config struct provides the configuration for a Producer (Sync or Async) and Consumer.
Consumer allows to consume message belonging to specified set of kafka topics.
ConsumerMessage encapsulates a Kafka message returned by the consumer.
ProducerError is the type of error generated when the producer fails to deliver a message.
ProducerMessage is the collection of elements passed to the Producer in order to send a message.
ProtoConsumerMessage encapsulates a Kafka message returned by the consumer and provides means to unmarshal the value into proto.Message.
ProtoProducerMessage is wrapper of a producer message that simplify work with proto-modelled data.
ProtoProducerMessageErr represents a proto-modelled message that was not published successfully.
SyncProducer allows to publish messages to kafka using synchronous API.

# Interfaces

Encoder defines an interface that is used as argument of producer functions.

# Type aliases

RequiredAcks is used in Produce Requests to tell the broker how many replica acknowledgements it must see before responding.