confluent-kafka-dotnet
Show / Hide Table of Contents

Namespace Confluent.Kafka

Classes

AdminClientBuilder

A builder for IAdminClient.

AdminClientConfig

AdminClient configuration properties

BrokerMetadata

Metadata pertaining to a single Kafka broker.

ClientConfig

Configuration common to all clients

ClientExtensions

IClient extension methods

CommittedOffsets

Encapsulates information provided to a Consumer's OnOffsetsCommitted event - per-partition offsets and success/error together with overall success/error of the commit operation.

Config

Base functionality common to all configuration classes.

ConfigPropertyNames

Names of all configuration properties specific to the .NET Client.

ConfigPropertyNames.Consumer

Consumer specific configuration properties.

ConfigPropertyNames.Producer

Producer specific configuration properties.

ConsumeException

Represents an error that occurred during message consumption.

ConsumeResult<TKey, TValue>

Represents a message consumed from a Kafka cluster.

ConsumerBuilder<TKey, TValue>

A builder class for IConsumer<TKey, TValue>.

ConsumerConfig

Consumer configuration properties

ConsumerGroupTopicPartitionOffsets

Represents a Kafka tuple (consumer group, list of TopicPartitionOffsets).

ConsumerGroupTopicPartitions

Represents a Kafka tuple (consumer group, list of TopicPartions).

DeliveryReport<TKey, TValue>

The result of a produce request.

DeliveryResult<TKey, TValue>

Encapsulates the result of a successful produce request.

DependentAdminClientBuilder

A builder class for IAdminClient instance implementations that leverage an existing client handle.

DependentProducerBuilder<TKey, TValue>

A builder class for IProducer<TKey, TValue> instance implementations that leverage an existing client handle.

[API-SUBJECT-TO-CHANGE] - This class may be removed in the future in favor of an improved API for this functionality.

Deserializers

Deserializers for use with Confluent.Kafka.Consumer<TKey, TValue>.

Error

Represents an error that occured when interacting with a Kafka broker or the librdkafka library.

ErrorCodeExtensions

Provides extension methods on the ErrorCode enumeration.

GroupInfo

Encapsulates information describing a particular Kafka group.

GroupMemberInfo

Encapsulates information describing a particular member of a Kafka group.

Handle

A handle for a librdkafka client instance. Also encapsulates a reference to the IClient instance that owns this handle.

Header

Represents a kafka message header.

Headers

A collection of Kafka message headers.

IAdminClientExtensions

Extension methods for default IAdminClient implementations.

IConsumerExtensions

Common extension methods for IConsumer<TKey, TValue> implementations.

Ignore

A type for use in conjunction with IgnoreDeserializer that enables message keys or values to be read as null, regardless of their value.

KafkaException

Represents an error that occured during an interaction with Kafka.

KafkaRetriableException

Represents an error where the operation that caused it may be retried.

KafkaTxnRequiresAbortException

Represents an error that caused the current transaction to fail and enter the abortable state.

Library

Methods that relate to the native librdkafka library itself (do not require a Producer or Consumer broker connection).

LogMessage

Encapsulates information provided to the Producer/Consumer OnLog event.

Loggers

OnLog callback event handler implementations.

MessageMetadata

All components of Message<TKey, TValue> except Key and Value.

MessageNullException

Thrown when there is an attempt to dereference a null Message reference.

Message<TKey, TValue>

Represents a (deserialized) Kafka message.

Metadata

Kafka cluster metadata.

Node

Node represents a Kafka broker.

Null

A type for use in conjunction with NullSerializer and NullDeserializer that enables null key or values to be enforced when producing or consuming messages.

PartitionMetadata

Metadata pertaining to a single Kafka topic partition.

ProduceException<TKey, TValue>

Represents an error that occured whilst producing a message.

ProducerBuilder<TKey, TValue>

A builder class for IProducer<TKey, TValue>.

ProducerConfig

Producer configuration properties

SerdeExtensions

EXPERIMENTAL: subject to change or removal.

Extension methods that interrogate a serializer or deserializer for optional capabilities - IClusterIdAware and ISerdeDisposable - without requiring it to implement them.

Every method here is safe to call on any serializer or deserializer, including the built-in ones and application-supplied delegates: an instance that does not implement the relevant interface reports no capability and is left untouched.

An instance wrapped with AsSyncOverAsync() is unwrapped first, so the capabilities of the underlying async serializer or deserializer are the ones that count.

Serializers

Serializers for use with Confluent.Kafka.Producer<TKey, TValue>.

TopicCollection

A class used to represent a collection of topics.

TopicMetadata

Metadata pertaining to a single Kafka topic.

TopicPartition

Represents a Kafka (topic, partition) tuple.

TopicPartitionError

Represents a Kafka (topic, partition, error) tuple.

TopicPartitionException

Represents an error that occured during a Consumer.Position request.

TopicPartitionInfo

TopicPartitionInfo represents the description of a partition within a topic. Used for result of DescribeTopics for an individual topic.

TopicPartitionOffset

Represents a Kafka (topic, partition, offset) tuple.

TopicPartitionOffsetError

Represents a Kafka (topic, partition, offset, error) tuple.

TopicPartitionOffsetException

Represents an error that occured during a Consumer.Position request.

TopicPartitionTimestamp

Represents a Kafka (topic, partition, timestamp) tuple.

Uuid

Represents a UUID

WatermarkOffsets

Represents the low and high watermark offsets of a Kafka topic/partition.

Structs

Offset

Represents a Kafka partition offset value.

Partition

Represents a Kafka partition.

SerializationContext

Context relevant to a serialization or deserialization operation.

Timestamp

Encapsulates a Kafka timestamp and its type.

Interfaces

IAdminClient

Defines an Apache Kafka admin client.

IAsyncDeserializerBuilder<T>

EXPERIMENTAL: subject to change or removal.

Defines a builder of IAsyncDeserializer<T> instances, for use with SetKeyDeserializerBuilder(IAsyncDeserializerBuilder<TKey>) and its value counterpart.

In contrast to supplying an already constructed deserializer, a builder is invoked by the consumer during construction, and is passed the consumer's own configuration along with whether the deserializer is being used for the message key or value.

IAsyncDeserializer<T>

A deserializer for use with Confluent.Kafka.Consumer<TKey, TValue>.

IAsyncSerializerBuilder<T>

EXPERIMENTAL: subject to change or removal.

Defines a builder of IAsyncSerializer<T> instances, for use with SetKeySerializerBuilder(IAsyncSerializerBuilder<TKey>) and its value counterpart.

In contrast to supplying an already constructed serializer, a builder is invoked by the producer during construction, and is passed the producer's own configuration along with whether the serializer is being used for the message key or value.

IAsyncSerializer<T>

Defines a serializer for use with Confluent.Kafka.Producer<TKey, TValue>.

IClient

Defines methods common to all client types.

Further operations common to all clients are provided as extension methods by ClientExtensions, such as ClusterId(IClient, TimeSpan) and OAuthBearerSetToken(IClient, string, long, string, IDictionary<string, string>).

IClusterIdAware

EXPERIMENTAL: subject to change or removal.

Implemented by serializers and deserializers that can make use of the id of the Kafka cluster the client is connected to.

A producer or consumer does not resolve the cluster id itself. During construction it hands each serializer or deserializer a resolver, via SetClusterIdResolver(Func<Task<string>>), which the serde invokes whenever it actually needs the id. Resolving the id requires the client to have reached a broker, which is not always possible during construction - an OAUTHBEARER token refresh callback, for instance, is only served from the poll loop - so deferring it keeps construction from blocking.

This interface is deliberately separate from ISerializer<T> and friends: those are implemented by application code, so adding members to them would be a breaking change. Use the SetClusterIdResolver extension methods to hand a resolver to an arbitrary serializer or deserializer.

IConsumerGroupMetadata

The consumer group metadata associated with a consumer.

IConsumer<TKey, TValue>

Defines a high-level Apache Kafka consumer (with key and value deserialization).

IDeserializerBuilder<T>

EXPERIMENTAL: subject to change or removal.

Defines a builder of IDeserializer<T> instances, for use with SetKeyDeserializerBuilder(IDeserializerBuilder<TKey>) and its value counterpart.

In contrast to supplying an already constructed deserializer, a builder is invoked by the consumer during construction, and is passed the consumer's own configuration along with whether the deserializer is being used for the message key or value.

IDeserializer<T>

Defines a deserializer for use with Confluent.Kafka.Consumer<TKey, TValue>.

IHeader

Defines a Kafka message header.

IProducer<TKey, TValue>

Defines a high-level Apache Kafka producer client that provides key and value serialization.

ISerdeDisposable

EXPERIMENTAL: subject to change or removal.

Implemented by serializers and deserializers that hold disposable resources they created themselves, and are therefore responsible for releasing.

A serializer or deserializer constructed by a producer or consumer from an ISerializerBuilder<T> (or one of its siblings) is owned by that client, and is released when the client is disposed. One that was constructed by the application and supplied directly remains owned by the application and is never released by the client.

This interface intentionally does not extend IDisposable: doing so would cause analyzers to require disposal at every construction site in application code, which is misleading given that a serializer holding no resources of its own has nothing to release. Use the DisposeOwnedResources extension methods to release an arbitrary serializer or deserializer.

ISerializerBuilder<T>

EXPERIMENTAL: subject to change or removal.

Defines a builder of ISerializer<T> instances, for use with SetKeySerializerBuilder(ISerializerBuilder<TKey>) and its value counterpart.

In contrast to supplying an already constructed serializer, a builder is invoked by the producer during construction, and is passed the producer's own configuration along with whether the serializer is being used for the message key or value.

ISerializer<T>

Defines a serializer for use with Confluent.Kafka.Producer<TKey, TValue>.

Enums

Acks

Acks enum values

AutoOffsetReset

AutoOffsetReset enum values

BrokerAddressFamily

BrokerAddressFamily enum values

ClientDnsLookup

ClientDnsLookup enum values

CompressionType

CompressionType enum values

ConsumerGroupState

Enumerates the different consumer group states.

ConsumerGroupType

Enumerates the different consumer group types.

ElectionType

Enumerates the different types of Election types.

ErrorCode

Enumeration of local and broker generated error codes.

GroupProtocol

GroupProtocol enum values

IsolationLevel

IsolationLevel enum values

LogLevelType

Enumerates different log level enumerations.

MessageComponentType

Enumerates different parts of a Kafka message

MetadataRecoveryStrategy

MetadataRecoveryStrategy enum values

PartitionAssignmentStrategy

PartitionAssignmentStrategy enum values

Partitioner

Partitioner enum values

PersistenceStatus

Enumeration of possible message persistence states.

SaslMechanism

SaslMechanism enum values

SaslOauthbearerAssertionAlgorithm

SaslOauthbearerAssertionAlgorithm enum values

SaslOauthbearerGrantType

SaslOauthbearerGrantType enum values

SaslOauthbearerMetadataAuthenticationType

SaslOauthbearerMetadataAuthenticationType enum values

SaslOauthbearerMethod

SaslOauthbearerMethod enum values

SecurityProtocol

SecurityProtocol enum values

SslEndpointIdentificationAlgorithm

SslEndpointIdentificationAlgorithm enum values

SyslogLevel

Represents enumeration with levels coming from syslog(3)

TimestampType

Enumerates the different meanings of a message timestamp value.

Delegates

PartitionerDelegate

Calculate a partition number given a partitionCount and serialized keyData. The topic is also provided, but is typically not used.

In this article