Show / Hide Table of Contents

    Class KafkaClientConfiguration<TConfluentConfig>

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Inheritance
    object
    KafkaClientConfiguration<TConfluentConfig>
    KafkaClientConfiguration
    KafkaConsumerConfiguration
    KafkaProducerConfiguration
    Implements
    IValidatableSettings
    IEquatable<KafkaClientConfiguration<TConfluentConfig>>
    Inherited Members
    object.GetType()
    object.MemberwiseClone()
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    Namespace: Silverback.Messaging.Configuration.Kafka
    Assembly: Silverback.Integration.Kafka.dll
    Syntax
    public abstract record KafkaClientConfiguration<TConfluentConfig> : IValidatableSettings, IEquatable<KafkaClientConfiguration<TConfluentConfig>> where TConfluentConfig : ClientConfig, new()
    Type Parameters
    Name Description
    TConfluentConfig

    The type of the wrapped Confluent.Kafka.ClientConfig.

    Constructors

    KafkaClientConfiguration()

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    protected KafkaClientConfiguration()

    KafkaClientConfiguration(KafkaClientConfiguration<TConfluentConfig>)

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    protected KafkaClientConfiguration(KafkaClientConfiguration<TConfluentConfig> original)
    Parameters
    Type Name Description
    KafkaClientConfiguration<TConfluentConfig> original

    Properties

    Acks

    Gets the number of acknowledgements that the leader broker must receive from the in-sync replicas before responding to the request: Confluent.Kafka.Acks.None (no response/ack is sent to the client), Confluent.Kafka.Acks.Leader (the leader will write the record to its local log but will respond without awaiting full acknowledgement from all followers, or Confluent.Kafka.Acks.All (the broker will block until the message is committed by all in-sync replicas. If there are less than min.insync.replicas (broker configuration) in the in-sync replicas set the produce request will fail.

    Declaration
    public Acks? Acks { get; init; }
    Property Value
    Type Description
    Acks?

    AllowAutoCreateTopics

    Gets a value indicating whether topics can be automatically created on the broker when subscribing to or assigning a non-existent topic. The broker must also be configured with auto.create.topics.enable=true for this configuration to take effect. Requires broker version >= 0.11.0.0, for older broker versions only the broker configuration applies.

    Declaration
    public bool? AllowAutoCreateTopics { get; init; }
    Property Value
    Type Description
    bool?

    ApiVersionFallbackMs

    Gets how long the BrokerVersionFallback is used in the case the API version request fails.

    Declaration
    public int? ApiVersionFallbackMs { get; init; }
    Property Value
    Type Description
    int?

    ApiVersionRequest

    Gets a value indicating whether the broker's supported API versions must be requested to adjust the functionality to the available protocol features. If set to false, or the API version request fails, the fallback version BrokerVersionFallback will be used.

    Declaration
    public bool? ApiVersionRequest { get; init; }
    Property Value
    Type Description
    bool?

    ApiVersionRequestTimeoutMs

    Gets the timeout (in milliseconds) for the broker API version requests.

    Declaration
    public int? ApiVersionRequestTimeoutMs { get; init; }
    Property Value
    Type Description
    int?

    BootstrapServers

    Gets the comma-separated list of brokers (host or host:port).

    Declaration
    public string? BootstrapServers { get; init; }
    Property Value
    Type Description
    string

    BrokerAddressFamily

    Gets the allowed broker IP address families.

    Declaration
    public BrokerAddressFamily? BrokerAddressFamily { get; init; }
    Property Value
    Type Description
    BrokerAddressFamily?

    BrokerAddressTtl

    Gets the duration in milliseconds of the cache of the broker address resolving results.

    Declaration
    public int? BrokerAddressTtl { get; init; }
    Property Value
    Type Description
    int?

    BrokerVersionFallback

    Gets the broker API version to be used when the API version request fails or it's disabled. Older broker versions (before 0.10.0) don't support the API version request. Valid values are: 0.9.0, 0.8.2, 0.8.1, 0.8.0. Any other value >= 0.10, such as 0.10.2.1, enables the ApiVersionRequest.

    Declaration
    public string? BrokerVersionFallback { get; init; }
    Property Value
    Type Description
    string

    CancellationDelayMaxMs

    Gets the maximum time (in milliseconds) before a cancellation request is acted on. Low values may result in measurably higher CPU usage.

    Declaration
    public int? CancellationDelayMaxMs { get; init; }
    Property Value
    Type Description
    int?

    ClientDnsLookup

    Gets a value indicating how the client uses DNS lookups. By default, when the lookup returns multiple IP addresses for a hostname, they will all be attempted for connection before the connection is considered failed. This applies to both bootstrap and advertised servers. If the value is set to Confluent.Kafka.ClientDnsLookup.ResolveCanonicalBootstrapServersOnly, each entry will be resolved and expanded into a list of canonical names. Warning: Confluent.Kafka.ClientDnsLookup.ResolveCanonicalBootstrapServersOnly must only be used with Confluent.Kafka.SaslMechanism.Gssapi (Kerberos) as SaslMechanism, as it's the only purpose of this configuration value. Note: Default here is different from the Java client's default behavior, which connects only to the first IP address returned for a hostname.

    Declaration
    public ClientDnsLookup? ClientDnsLookup { get; init; }
    Property Value
    Type Description
    ClientDnsLookup?

    ClientId

    Gets the client identifier.

    Declaration
    public string? ClientId { get; init; }
    Property Value
    Type Description
    string

    ClientRack

    Gets the rack identifier for this client. This can be any string value which indicates where this client is physically located.

    Declaration
    public string? ClientRack { get; init; }
    Property Value
    Type Description
    string

    ConnectionsMaxIdleMs

    Gets the maximum time of inactivity (in milliseconds) before closing the broker connections. Disable with 0. If this property is left at its default value some heuristics are performed to determine a suitable default value.

    Declaration
    public int? ConnectionsMaxIdleMs { get; init; }
    Property Value
    Type Description
    int?

    Debug

    Gets a comma-separated list of debug contexts to enable. Detailed producer debugging: broker,topic,msg. Detailed consumer debugging: consumer,cgrp,topic,fetch.

    Declaration
    public string? Debug { get; init; }
    Property Value
    Type Description
    string

    EnableMetricsPush

    Gets a value indicating whether to enable pushing of client metrics to the cluster, if the cluster has a client metrics subscription which matches this client.

    Declaration
    public bool? EnableMetricsPush { get; init; }
    Property Value
    Type Description
    bool?

    EnableSaslOauthbearerUnsecureJwt

    Gets a value indicating whether the builtin unsecure JWT OAUTHBEARER token handler must be enabled. This builtin handler should only be used for development or testing, and not in production.

    Declaration
    public bool? EnableSaslOauthbearerUnsecureJwt { get; init; }
    Property Value
    Type Description
    bool?

    EnableSslCertificateVerification

    Gets a value indicating whether the broker (server) certificate must be verified.

    Declaration
    public bool? EnableSslCertificateVerification { get; init; }
    Property Value
    Type Description
    bool?

    EqualityContract

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    protected virtual Type EqualityContract { get; }
    Property Value
    Type Description
    Type

    HttpsCaLocation

    Gets the file or directory path to CA certificate(s) for verifying HTTPS endpoints, such as sasl.oauthbearer.token.endpoint.url used for OAUTHBEARER/OIDC authentication. Mutually exclusive with HttpsCaPem. Defaults: On Windows the system's CA certificates are automatically looked up in the Windows Root certificate store. On Mac OSX this configuration defaults to probe. It is recommended to install openssl using Homebrew to provide CA certificates. On Linux install the distribution's ca-certificates package. If OpenSSL is statically linked or https.ca.location is set to probe a list of standard paths will be probed and the first one found will be used as the default CA certificate location path. If OpenSSL is dynamically linked the OpenSSL library's default path will be used (see OPENSSLDIR in openssl version -a).

    Declaration
    public string? HttpsCaLocation { get; init; }
    Property Value
    Type Description
    string

    HttpsCaPem

    Gets the CA certificate string (in PEM format) for verifying HTTPS endpoints. Mutually exclusive with HttpsCaLocation.

    Declaration
    public string? HttpsCaPem { get; init; }
    Property Value
    Type Description
    string

    MaxInFlight

    Gets the maximum number of in-flight requests per broker connection. This is a generic property applied to all broker communication, however it is primarily relevant to produce requests. In particular, note that other mechanisms limit the number of outstanding consumer fetch request per broker to one.

    Declaration
    public int? MaxInFlight { get; init; }
    Property Value
    Type Description
    int?

    MessageCopyMaxBytes

    Gets the maximum size for a message to be copied into the buffer. Messages larger than this will be passed by reference (zero-copy) at the expense of larger iovecs.

    Declaration
    public int? MessageCopyMaxBytes { get; init; }
    Property Value
    Type Description
    int?

    MessageMaxBytes

    Gets the maximum message size.

    Declaration
    public int? MessageMaxBytes { get; init; }
    Property Value
    Type Description
    int?

    MetadataMaxAgeMs

    Gets the metadata cache max age (in milliseconds). Defaults to TopicMetadataRefreshIntervalMs.

    Declaration
    public int? MetadataMaxAgeMs { get; init; }
    Property Value
    Type Description
    int?

    MetadataRecoveryRebootstrapTriggerMs

    Gets the metadata recovery rebootstrap trigger interval (ms). When using Confluent.Kafka.MetadataRecoveryStrategy.Rebootstrap, if the client is unable to obtain metadata from any of the known brokers for the specified interval, the client repeats the bootstrap process using the configured bootstrap.servers and brokers added through rd_kafka_brokers_add(). Default: 300000 (5 minutes).

    Declaration
    public int? MetadataRecoveryRebootstrapTriggerMs { get; init; }
    Property Value
    Type Description
    int?

    MetadataRecoveryStrategy

    Gets the metadata recovery strategy. If set to Confluent.Kafka.MetadataRecoveryStrategy.None the client doesn't re-bootstrap. If set to Confluent.Kafka.MetadataRecoveryStrategy.Rebootstrap the client repeats the bootstrap process using the configured bootstrap.servers and brokers added through rd_kafka_brokers_add(). Rebootstrapping is useful when a client talks to brokers so infrequently that the broker set may change entirely before the client refreshes metadata. Metadata recovery is triggered when all last-known brokers appear unavailable simultaneously, when the client cannot refresh metadata within the configured rebootstrap trigger interval, or when requested in a metadata response.

    Declaration
    public MetadataRecoveryStrategy? MetadataRecoveryStrategy { get; init; }
    Property Value
    Type Description
    MetadataRecoveryStrategy?

    PluginLibraryPaths

    Gets the list of plugin libraries to load (; separated). The library search path is platform dependent. If no filename extension is specified the platform-specific extension (such as .dll or .so) will be appended automatically.

    Declaration
    public string? PluginLibraryPaths { get; init; }
    Property Value
    Type Description
    string

    ReceiveMessageMaxBytes

    Gets the maximum response message size. This serves as a safety precaution to avoid memory exhaustion in case of protocol hickups. This value must be at least FetchMaxBytes + 512 to allow for protocol overhead. The value is adjusted automatically unless the configuration property is explicitly set.

    Declaration
    public int? ReceiveMessageMaxBytes { get; init; }
    Property Value
    Type Description
    int?

    ReconnectBackoffMaxMs

    Gets the maximum time (in milliseconds) to wait before reconnecting to a broker after the connection has been closed.

    Declaration
    public int? ReconnectBackoffMaxMs { get; init; }
    Property Value
    Type Description
    int?

    ReconnectBackoffMs

    Gets the initial time (in milliseconds) to wait before reconnecting to a broker after the connection has been closed. The time is increased exponentially until ReconnectBackoffMaxMs is reached. -25% to +50% jitter is applied to each reconnect backoff. A value of 0 disables the backoff and reconnects immediately.

    Declaration
    public int? ReconnectBackoffMs { get; init; }
    Property Value
    Type Description
    int?

    RetryBackoffMaxMs

    Gets the maximum backoff time in milliseconds before retrying a protocol request, this is the maximum backoff allowed for exponentially backed off requests.

    Declaration
    public int? RetryBackoffMaxMs { get; init; }
    Property Value
    Type Description
    int?

    RetryBackoffMs

    Gets the backoff time in milliseconds before retrying a protocol request, this is the first backoff time, and will be backed off exponentially until number of retries is exhausted, and it's capped by RetryBackoffMaxMs.

    Declaration
    public int? RetryBackoffMs { get; init; }
    Property Value
    Type Description
    int?

    SaslKerberosKeytab

    Gets the path to the Kerberos keytab file. This configuration property is only used as a variable in SaslKerberosKinitCmd as ... -t "%{sasl.kerberos.keytab}".

    Declaration
    public string? SaslKerberosKeytab { get; init; }
    Property Value
    Type Description
    string

    SaslKerberosKinitCmd

    Gets the shell command to be used to refresh or acquire the client's Kerberos ticket. This command is executed on client creation and every SaslKerberosMinTimeBeforeRelogin (0=disable).

    Declaration
    public string? SaslKerberosKinitCmd { get; init; }
    Property Value
    Type Description
    string

    SaslKerberosMinTimeBeforeRelogin

    Gets the minimum time in milliseconds between each key refresh attempts. Disable automatic key refresh by setting this property to 0.

    Declaration
    public int? SaslKerberosMinTimeBeforeRelogin { get; init; }
    Property Value
    Type Description
    int?

    SaslKerberosPrincipal

    Gets the client's Kerberos principal name. (Not supported on Windows, will use the logon user's principal).

    Declaration
    public string? SaslKerberosPrincipal { get; init; }
    Property Value
    Type Description
    string

    SaslKerberosServiceName

    Gets the Kerberos principal name that Kafka runs as, not including /hostname@REALM.

    Declaration
    public string? SaslKerberosServiceName { get; init; }
    Property Value
    Type Description
    string

    SaslMechanism

    Gets the SASL mechanism to use for authentication. Supported: GSSAPI, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512.

    Declaration
    public SaslMechanism? SaslMechanism { get; init; }
    Property Value
    Type Description
    SaslMechanism?

    SaslOauthbearerAssertionAlgorithm

    Gets the algorithm the client should use to sign the assertion sent to the identity provider and in the OAuth alg header in the JWT assertion.

    Declaration
    public SaslOauthbearerAssertionAlgorithm? SaslOauthbearerAssertionAlgorithm { get; init; }
    Property Value
    Type Description
    SaslOauthbearerAssertionAlgorithm?

    SaslOauthbearerAssertionClaimAud

    Gets the JWT audience claim. Only used when sasl.oauthbearer.method is set to "oidc" and JWT assertion is needed.

    Declaration
    public string? SaslOauthbearerAssertionClaimAud { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerAssertionClaimExpSeconds

    Gets the assertion expiration time in seconds. Only used when sasl.oauthbearer.method is set to "oidc" and JWT assertion is needed.

    Declaration
    public int? SaslOauthbearerAssertionClaimExpSeconds { get; init; }
    Property Value
    Type Description
    int?

    SaslOauthbearerAssertionClaimIss

    Gets the JWT issuer claim. Only used when sasl.oauthbearer.method is set to "oidc" and JWT assertion is needed.

    Declaration
    public string? SaslOauthbearerAssertionClaimIss { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerAssertionClaimJtiInclude

    Gets the JWT ID claim. When set to true, a random UUID is generated. Only used when sasl.oauthbearer.method is set to "oidc" and JWT assertion is needed.

    Declaration
    public bool? SaslOauthbearerAssertionClaimJtiInclude { get; init; }
    Property Value
    Type Description
    bool?

    SaslOauthbearerAssertionClaimNbfSeconds

    Gets the assertion not before time in seconds. Only used when sasl.oauthbearer.method is set to "oidc" and JWT assertion is needed.

    Declaration
    public int? SaslOauthbearerAssertionClaimNbfSeconds { get; init; }
    Property Value
    Type Description
    int?

    SaslOauthbearerAssertionClaimSub

    Gets the JWT subject claim. Only used when sasl.oauthbearer.method is set to "oidc" and JWT assertion is needed.

    Declaration
    public string? SaslOauthbearerAssertionClaimSub { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerAssertionFile

    Gets the path to the assertion file. Only used when sasl.oauthbearer.method is set to "oidc" and JWT assertion is needed.

    Declaration
    public string? SaslOauthbearerAssertionFile { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerAssertionJwtTemplateFile

    Gets the path to the JWT template file. Only used when sasl.oauthbearer.method is set to "oidc" and JWT assertion is needed.

    Declaration
    public string? SaslOauthbearerAssertionJwtTemplateFile { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerAssertionPrivateKeyFile

    Gets the path to the client's private key (PEM) used for authentication when using the JWT assertion.

    Declaration
    public string? SaslOauthbearerAssertionPrivateKeyFile { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerAssertionPrivateKeyPassphrase

    Gets the private key passphrase for sasl.oauthbearer.assertion.private.key.file or sasl.oauthbearer.assertion.private.key.pem.

    Declaration
    public string? SaslOauthbearerAssertionPrivateKeyPassphrase { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerAssertionPrivateKeyPem

    Gets the client's private key (PEM) used for authentication when using the JWT assertion.

    Declaration
    public string? SaslOauthbearerAssertionPrivateKeyPem { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerClientId

    Gets the public identifier for the application. Must be unique across all clients that the authorization server handles. Only used when SaslOauthbearerMethod is set to Confluent.Kafka.SaslOauthbearerMethod.Oidc.

    Declaration
    public string? SaslOauthbearerClientId { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerClientSecret

    Gets the client secret only known to the application and the authorization server. This should be a sufficiently random string that is not guessable. Only used when SaslOauthbearerMethod is set to Confluent.Kafka.SaslOauthbearerMethod.Oidc.

    Declaration
    public string? SaslOauthbearerClientSecret { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerConfig

    Gets the SASL/OAUTHBEARER configuration. The format is implementation-dependent and must be parsed accordingly. The default unsecured token implementation (see https://tools.ietf.org/html/rfc7515#appendix-A.5) recognizes space-separated name=value pairs with valid names including principalClaimName, principal, scopeClaimName, scope, and lifeSeconds. The default value for principalClaimName is "sub", the default value for scopeClaimName is "scope", and the default value for lifeSeconds is 3600. The scope value is CSV format with the default value being no/empty scope. For example: principalClaimName=azp principal=admin scopeClaimName=roles scope=role1,role2 lifeSeconds=600. In addition, SASL extensions can be communicated to the broker via extension_NAME=value. For example: principal=admin extension_traceId=123.

    Declaration
    public string? SaslOauthbearerConfig { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerExtensions

    Gets the additional information to be provided to the broker as a comma-separated list of key=value pairs (e.g. supportFeatureX=true,organizationId=sales-emea). Only used when SaslOauthbearerMethod is set to Confluent.Kafka.SaslOauthbearerMethod.Oidc.

    Declaration
    public string? SaslOauthbearerExtensions { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerGrantType

    Gets the OAuth grant type to use when communicating with the identity provider.

    Declaration
    public SaslOauthbearerGrantType? SaslOauthbearerGrantType { get; init; }
    Property Value
    Type Description
    SaslOauthbearerGrantType?

    SaslOauthbearerMetadataAuthenticationType

    Gets the type of metadata-based authentication to use for OAUTHBEARER/OIDC azure_imds authenticates using the Azure IMDS endpoint. Sets a default value for sasl.oauthbearer.token.endpoint.url if missing. Configuration values specific of chosen authentication type can be passed through sasl.oauthbearer.config.

    Declaration
    public SaslOauthbearerMetadataAuthenticationType? SaslOauthbearerMetadataAuthenticationType { get; init; }
    Property Value
    Type Description
    SaslOauthbearerMetadataAuthenticationType?

    SaslOauthbearerMethod

    Gets the login method to be used. If set to Confluent.Kafka.SaslOauthbearerMethod.Oidc, the following properties must also be be specified: SaslOauthbearerClientId, SaslOauthbearerClientSecret, and SaslOauthbearerTokenEndpointUrl.

    Declaration
    public SaslOauthbearerMethod? SaslOauthbearerMethod { get; init; }
    Property Value
    Type Description
    SaslOauthbearerMethod?

    SaslOauthbearerScope

    Gets the scope of the access request to the broker. Only used when SaslOauthbearerMethod is set to Confluent.Kafka.SaslOauthbearerMethod.Oidc.

    Declaration
    public string? SaslOauthbearerScope { get; init; }
    Property Value
    Type Description
    string

    SaslOauthbearerTokenEndpointUrl

    Gets the OAuth/OIDC issuer token endpoint HTTP(S) URI used to retrieve the token. Only used when SaslOauthbearerMethod is set to Confluent.Kafka.SaslOauthbearerMethod.Oidc.

    Declaration
    public string? SaslOauthbearerTokenEndpointUrl { get; init; }
    Property Value
    Type Description
    string

    SaslPassword

    Gets the SASL password to use with the PLAIN and SASL-SCRAM-.. mechanisms.

    Declaration
    public string? SaslPassword { get; init; }
    Property Value
    Type Description
    string

    SaslUsername

    Gets the SASL username to use with the PLAIN and SASL-SCRAM-.. mechanisms.

    Declaration
    public string? SaslUsername { get; init; }
    Property Value
    Type Description
    string

    SecurityProtocol

    Gets the protocol to be used to communicate with the brokers.

    Declaration
    public SecurityProtocol? SecurityProtocol { get; init; }
    Property Value
    Type Description
    SecurityProtocol?

    SocketConnectionSetupTimeoutMs

    Gets the maximum time (in milliseconds) allowed for the setup of the broker connection (TCP connection setup and SSL/SASL handshake). The connection to the broker will be closed and retried, if the timeout elapses before it is fully functional.

    Declaration
    public int? SocketConnectionSetupTimeoutMs { get; init; }
    Property Value
    Type Description
    int?

    SocketKeepaliveEnable

    Gets a value indicating whether TCP keep-alive (SO_KEEPALIVE) must be enabled on the broker sockets.

    Declaration
    public bool? SocketKeepaliveEnable { get; init; }
    Property Value
    Type Description
    bool?

    SocketMaxFails

    Gets the maximum number of send failures (e.g. timed out requests) before disconnecting. Disable with 0.
    Warning: It is highly recommended to leave this setting at its default value of 1 to avoid the client and broker to become desynchronized in case of request timeouts.
    Note: The connection is automatically re-established.

    Declaration
    public int? SocketMaxFails { get; init; }
    Property Value
    Type Description
    int?

    SocketNagleDisable

    Gets a value indicating whether the Nagle's algorithm (TCP_NODELAY) must be disabled on broker sockets.

    Declaration
    public bool? SocketNagleDisable { get; init; }
    Property Value
    Type Description
    bool?

    SocketReceiveBufferBytes

    Gets the socket receive buffer size. The system default is used if 0.

    Declaration
    public int? SocketReceiveBufferBytes { get; init; }
    Property Value
    Type Description
    int?

    SocketSendBufferBytes

    Gets the socket send buffer size. The system default is used if 0.

    Declaration
    public int? SocketSendBufferBytes { get; init; }
    Property Value
    Type Description
    int?

    SocketTimeoutMs

    Gets the default timeout (in milliseconds) for network requests.

    Declaration
    public int? SocketTimeoutMs { get; init; }
    Property Value
    Type Description
    int?

    SslCaCertificateStores

    Gets a comma-separated list of Windows certificate stores to load CA certificates from. The certificates will be loaded in the same order as stores are specified. If no certificates can be loaded from any of the specified stores an error is logged and the OpenSSL library's default CA location is used instead. Store names are typically one or more of: MY, Root, Trust, CA.

    Declaration
    public string? SslCaCertificateStores { get; init; }
    Property Value
    Type Description
    string

    SslCaLocation

    Gets the file or directory path to the CA certificate(s) for verifying the broker's key. Defaults: On Windows the system's CA certificates are automatically looked up in the Windows Root certificate store. On Mac OSX this configuration defaults to probe. It is recommended to install openssl using Homebrew, to provide CA certificates. On Linux install the distribution's ca-certificates package. If OpenSSL is statically linked or SslCaLocation is set to probe a list of standard paths will be probed and the first one found will be used as the default CA certificate location path. If OpenSSL is dynamically linked the OpenSSL library's default path will be used (see OPENSSLDIR in openssl version -a).

    Declaration
    public string? SslCaLocation { get; init; }
    Property Value
    Type Description
    string

    SslCaPem

    Gets the CA certificate string (in PEM format) for verifying the broker's key.

    Declaration
    public string? SslCaPem { get; init; }
    Property Value
    Type Description
    string

    SslCertificateLocation

    Gets the path to the client's public key (PEM) used for the authentication.

    Declaration
    public string? SslCertificateLocation { get; init; }
    Property Value
    Type Description
    string

    SslCertificatePem

    Gets the client's public key string (in PEM format) used for the authentication.

    Declaration
    public string? SslCertificatePem { get; init; }
    Property Value
    Type Description
    string

    SslCipherSuites

    Gets the SSL cipher suites.

    Declaration
    public string? SslCipherSuites { get; init; }
    Property Value
    Type Description
    string

    SslCrlLocation

    Gets the path to the certificate revocation list (CRL) for verifying broker's certificate validity.

    Declaration
    public string? SslCrlLocation { get; init; }
    Property Value
    Type Description
    string

    SslCurvesList

    Gets the supported SSL curves.

    Declaration
    public string? SslCurvesList { get; init; }
    Property Value
    Type Description
    string

    SslEndpointIdentificationAlgorithm

    Gets the endpoint identification algorithm to be used to validate the broker hostname using the certificate. OpenSSL >= 1.0.2 required.

    Declaration
    public SslEndpointIdentificationAlgorithm? SslEndpointIdentificationAlgorithm { get; init; }
    Property Value
    Type Description
    SslEndpointIdentificationAlgorithm?

    SslEngineId

    Gets the OpenSSL engine id (the name used for loading engine).

    Declaration
    public string? SslEngineId { get; init; }
    Property Value
    Type Description
    string

    SslEngineLocation

    Gets the path to the OpenSSL engine library. OpenSSL >= 1.1.0 required.

    Declaration
    public string? SslEngineLocation { get; init; }
    Property Value
    Type Description
    string

    SslKeyLocation

    Gets the path to the client's private key (PEM) used for the authentication.

    Declaration
    public string? SslKeyLocation { get; init; }
    Property Value
    Type Description
    string

    SslKeyPassword

    Gets the private key passphrase.

    Declaration
    public string? SslKeyPassword { get; init; }
    Property Value
    Type Description
    string

    SslKeyPem

    Gets the client's private key string (in PEM format) used for the authentication.

    Declaration
    public string? SslKeyPem { get; init; }
    Property Value
    Type Description
    string

    SslKeystoreLocation

    Gets the path to the client's keystore (PKCS#12) used for the authentication.

    Declaration
    public string? SslKeystoreLocation { get; init; }
    Property Value
    Type Description
    string

    SslKeystorePassword

    Gets the client's keystore (PKCS#12) password.

    Declaration
    public string? SslKeystorePassword { get; init; }
    Property Value
    Type Description
    string

    SslProviders

    Gets the comma-separated list of OpenSSL 3.0.x implementation providers.

    Declaration
    public string? SslProviders { get; init; }
    Property Value
    Type Description
    string

    SslSigalgsList

    Gets the supported SSL signature algorithms.

    Declaration
    public string? SslSigalgsList { get; init; }
    Property Value
    Type Description
    string

    StatisticsIntervalMs

    Gets the statistics emit interval (in milliseconds). The granularity is 1000ms. A value of 0 disables statistics.

    Declaration
    public int? StatisticsIntervalMs { get; init; }
    Property Value
    Type Description
    int?

    TopicBlacklist

    Gets a comma-separated list of regular expressions for matching topic names that should be ignored in broker metadata information as if the topics did not exist.

    Declaration
    public string? TopicBlacklist { get; init; }
    Property Value
    Type Description
    string

    TopicMetadataPropagationMaxMs

    Gets the delay (in milliseconds) to be applied before marking a topic as non-existent. The maximum propagation time is calculated from the time the topic is first referenced in the client.

    Declaration
    public int? TopicMetadataPropagationMaxMs { get; init; }
    Property Value
    Type Description
    int?

    TopicMetadataRefreshFastIntervalMs

    Gets the refresh interval (in milliseconds) to be applied instead of the TopicMetadataRefreshIntervalMs when a topic loses its leader and a new metadata request will be enqueued. This initial interval will be exponentially increased until the topic metadata has been refreshed. This is used to recover quickly from transitioning leader brokers.

    Declaration
    public int? TopicMetadataRefreshFastIntervalMs { get; init; }
    Property Value
    Type Description
    int?

    TopicMetadataRefreshIntervalMs

    Gets the interval (in milliseconds) at which the topic and broker metadata is refreshed in order to proactively discover any new brokers, topics, partitions or partition leader changes. Use -1 to disable the intervalled refresh (not recommended). If there are no locally referenced topics (no topic objects created, no messages produced, no subscription or no assignment) then only the broker list will be refreshed every interval but no more often than every 10s.

    Declaration
    public int? TopicMetadataRefreshIntervalMs { get; init; }
    Property Value
    Type Description
    int?

    TopicMetadataRefreshSparse

    Gets a value indicating whether less metadata requests must be performed (consuming less network bandwidth).

    Declaration
    public bool? TopicMetadataRefreshSparse { get; init; }
    Property Value
    Type Description
    bool?

    Methods

    Equals(KafkaClientConfiguration<TConfluentConfig>?)

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    public virtual bool Equals(KafkaClientConfiguration<TConfluentConfig>? other)
    Parameters
    Type Name Description
    KafkaClientConfiguration<TConfluentConfig> other
    Returns
    Type Description
    bool

    Equals(object?)

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    public override bool Equals(object? obj)
    Parameters
    Type Name Description
    object obj
    Returns
    Type Description
    bool
    Overrides
    object.Equals(object)

    GetHashCode()

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    int
    Overrides
    object.GetHashCode()

    MapCore()

    Maps to the Confluent client configuration.

    Declaration
    protected virtual TConfluentConfig MapCore()
    Returns
    Type Description
    TConfluentConfig

    The Confluent client configuration.

    PrintMembers(StringBuilder)

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    protected virtual bool PrintMembers(StringBuilder builder)
    Parameters
    Type Name Description
    StringBuilder builder
    Returns
    Type Description
    bool

    ToString()

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    public override string ToString()
    Returns
    Type Description
    string
    Overrides
    object.ToString()

    Validate()

    Throws a SilverbackConfigurationException if the configuration is not valid.

    Declaration
    public virtual void Validate()

    Operators

    operator ==(KafkaClientConfiguration<TConfluentConfig>?, KafkaClientConfiguration<TConfluentConfig>?)

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    public static bool operator ==(KafkaClientConfiguration<TConfluentConfig>? left, KafkaClientConfiguration<TConfluentConfig>? right)
    Parameters
    Type Name Description
    KafkaClientConfiguration<TConfluentConfig> left
    KafkaClientConfiguration<TConfluentConfig> right
    Returns
    Type Description
    bool

    operator !=(KafkaClientConfiguration<TConfluentConfig>?, KafkaClientConfiguration<TConfluentConfig>?)

    Wraps the Confluent.Kafka.ConsumerConfig and contains the properties shared between the KafkaProducerConfiguration and KafkaConsumerConfiguration.

    Declaration
    public static bool operator !=(KafkaClientConfiguration<TConfluentConfig>? left, KafkaClientConfiguration<TConfluentConfig>? right)
    Parameters
    Type Name Description
    KafkaClientConfiguration<TConfluentConfig> left
    KafkaClientConfiguration<TConfluentConfig> right
    Returns
    Type Description
    bool

    Implements

    IValidatableSettings
    IEquatable<T>
    GitHub E-Mail
    ↑ Back to top © 2026 Sergio Aquilini