Table of Contents

Class KafkaOptionsExtension

Namespace
MASES.EntityFrameworkCore.KNet.Infrastructure.Internal
Assembly
MASES.EntityFrameworkCore.KNet.dll

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public class KafkaOptionsExtension : IDbContextOptionsExtension, IKafkaSingletonOptions, ISingletonOptions
Inheritance
KafkaOptionsExtension
Implements
Inherited Members
Extension Methods

Constructors

KafkaOptionsExtension()

Initializer

public KafkaOptionsExtension()

KafkaOptionsExtension(KafkaOptionsExtension)

Initializer

protected KafkaOptionsExtension(KafkaOptionsExtension copyFrom)

Parameters

copyFrom KafkaOptionsExtension

Properties

ApplicationId

The application id

public virtual string ApplicationId { get; }

Property Value

string

BootstrapServers

The bootstrap servers of the Apache Kafka cluster

public virtual string BootstrapServers { get; }

Property Value

string

ClusterId

Internal property

public virtual string ClusterId { get; }

Property Value

string

ConsumerConfig

public virtual ConsumerConfigBuilder ConsumerConfig { get; }

Property Value

ConsumerConfigBuilder

DatabaseName

Database name means whe prefix of the topics associated to the instance of KafkaDbContext

public virtual string DatabaseName { get; }

Property Value

string

DefaultConsumerInstances

Default consumr instances used in conjunction with UseCompactedReplicator

public virtual int? DefaultConsumerInstances { get; }

Property Value

int?

DefaultNumPartitions

Default number of partitions associated to each topic

public virtual int DefaultNumPartitions { get; }

Property Value

int

DefaultReplicationFactor

Default replication factor associated to each topic

public virtual short DefaultReplicationFactor { get; }

Property Value

short

Info

Information/metadata about the extension.

public virtual DbContextOptionsExtensionInfo Info { get; }

Property Value

DbContextOptionsExtensionInfo

KeySerDesSelectorType

The optional Type to use for key serialization selection

Default value is DefaultKEFCoreSerDes.Key<T>, any custom Type shall implement ISerDesSelector<T>

public virtual Type KeySerDesSelectorType { get; }

Property Value

Type

OnChangeEvent

The optional handler to be used to receive notification when the back-end triggers a data change.

public virtual Action<EntityTypeChanged> OnChangeEvent { get; }

Property Value

Action<EntityTypeChanged>

Remarks

ProducerConfig

The optional ProducerConfigBuilder

public virtual ProducerConfigBuilder ProducerConfig { get; }

Property Value

ProducerConfigBuilder

StreamsConfig

The optional StreamsConfig used when UseCompactedReplicator is false

public virtual StreamsConfigBuilder StreamsConfig { get; }

Property Value

StreamsConfigBuilder

TopicConfig

The optional TopicConfigBuilder used when topics shall be created

public virtual TopicConfigBuilder TopicConfig { get; }

Property Value

TopicConfigBuilder

UseByteBufferDataTransfer

Setting this property to true the engine prefers to use ByteBuffer data exchange in serializer instances

public virtual bool UseByteBufferDataTransfer { get; }

Property Value

bool

UseCompactedReplicator

Use KNetCompactedReplicator<K, V> instead of Apache Kafka Streams

public virtual bool UseCompactedReplicator { get; }

Property Value

bool

UseDeletePolicyForTopic

Use delete cleanup policy when a topic is created

public virtual bool UseDeletePolicyForTopic { get; }

Property Value

bool

UseEnumeratorWithPrefetch

Setting this property to true the engine prefers to use enumerator instances able to do a prefetch on data speeding up execution

public virtual bool UseEnumeratorWithPrefetch { get; }

Property Value

bool

Remarks

Used only if UseCompactedReplicator is false and UseKNetStreams is true, not available in EFCore 6.

UseKNetStreams

Use KNet version of Apache Kafka Streams instead of standard Apache Kafka Streams

public virtual bool UseKNetStreams { get; }

Property Value

bool

UseNameMatching

Set to false to avoid match of IEntityTypes using Name

public virtual bool UseNameMatching { get; }

Property Value

bool

UsePersistentStorage

Use persistent storage when Apache Kafka Streams is in use

public virtual bool UsePersistentStorage { get; }

Property Value

bool

ValueContainerType

The optional Type to use as value container

Default value is DefaultValueContainer<TKey>, any custom Type shall implement IValueContainer<T>

public virtual Type ValueContainerType { get; }

Property Value

Type

ValueSerDesSelectorType

The optional Type to use for value serialization selection

Default value is DefaultKEFCoreSerDes.ValueContainer<T>, any custom Type shall implement ISerDesSelector<T>

public virtual Type ValueSerDesSelectorType { get; }

Property Value

Type

Methods

ApplyServices(IServiceCollection)

Adds the services required to make the selected options work. This is used when there is no external IServiceProvider and EF is maintaining its own service provider internally. This allows database providers (and other extensions) to register their required services when EF is creating an service provider.

public virtual void ApplyServices(IServiceCollection services)

Parameters

services IServiceCollection

The collection to add services to.

Clone()

protected virtual KafkaOptionsExtension Clone()

Returns

KafkaOptionsExtension

Initialize(IDbContextOptions)

Initializes the singleton options from the given IDbContextOptions.

public void Initialize(IDbContextOptions options)

Parameters

options IDbContextOptions

ProducerOptions()

Build Properties for producers

public virtual Properties ProducerOptions()

Returns

Properties

ProducerOptionsBuilder()

Build ProducerConfigBuilder for producers

public virtual ProducerConfigBuilder ProducerOptionsBuilder()

Returns

ProducerConfigBuilder

StreamsOptions(IEntityType)

Build StreamsConfigBuilder from options

public virtual StreamsConfigBuilder StreamsOptions(IEntityType entityType)

Parameters

entityType IEntityType

Returns

StreamsConfigBuilder

StreamsOptions(string)

Build Properties for applicationId

public virtual Properties StreamsOptions(string applicationId)

Parameters

applicationId string

Returns

Properties

Validate(IDbContextOptions)

Gives the extension a chance to validate that all options in the extension are valid. Most extensions do not have invalid combinations and so this will be a no-op. If options are invalid, then an exception should be thrown.

public virtual void Validate(IDbContextOptions options)

Parameters

options IDbContextOptions

The options being validated.

WithApplicationId(string)

The application id

public virtual KafkaOptionsExtension WithApplicationId(string applicationId)

Parameters

applicationId string

Returns

KafkaOptionsExtension

WithBootstrapServers(string)

The bootstrap servers of the Apache Kafka cluster

public virtual KafkaOptionsExtension WithBootstrapServers(string bootstrapServers)

Parameters

bootstrapServers string

Returns

KafkaOptionsExtension

WithCompactedReplicator(bool)

Use KNetCompactedReplicator<K, V> instead of Apache Kafka Streams

public virtual KafkaOptionsExtension WithCompactedReplicator(bool useCompactedReplicator = true)

Parameters

useCompactedReplicator bool

Returns

KafkaOptionsExtension

WithConsumerConfig(ConsumerConfigBuilder)

public virtual KafkaOptionsExtension WithConsumerConfig(ConsumerConfigBuilder consumerConfigBuilder)

Parameters

consumerConfigBuilder ConsumerConfigBuilder

Returns

KafkaOptionsExtension

WithDatabaseName(string)

Database name means whe prefix of the topics associated to the instance of KafkaDbContext

public virtual KafkaOptionsExtension WithDatabaseName(string databaseName)

Parameters

databaseName string

Returns

KafkaOptionsExtension

WithDefaultConsumerInstances(int?)

Default consumr instances used in conjunction with UseCompactedReplicator

public virtual KafkaOptionsExtension WithDefaultConsumerInstances(int? defaultConsumerInstances = null)

Parameters

defaultConsumerInstances int?

Returns

KafkaOptionsExtension

WithDefaultNumPartitions(int)

Default number of partitions associated to each topic

public virtual KafkaOptionsExtension WithDefaultNumPartitions(int defaultNumPartitions = 1)

Parameters

defaultNumPartitions int

Returns

KafkaOptionsExtension

WithDefaultReplicationFactor(short)

Default replication factor associated to each topic

public virtual KafkaOptionsExtension WithDefaultReplicationFactor(short defaultReplicationFactor = 1)

Parameters

defaultReplicationFactor short

Returns

KafkaOptionsExtension

WithKeySerDesSelectorType(Type)

The optional Type to use for key serialization selection

Default value is DefaultKEFCoreSerDes.Key<T>, any custom Type shall implement ISerDesSelector<T>

public virtual KafkaOptionsExtension WithKeySerDesSelectorType(Type serializationType)

Parameters

serializationType Type

Returns

KafkaOptionsExtension

WithOnChangeEvent(Action<EntityTypeChanged>)

The optional handler to be used to receive notification when the back-end triggers a data change.

public virtual KafkaOptionsExtension WithOnChangeEvent(Action<EntityTypeChanged> onChangeEvent)

Parameters

onChangeEvent Action<EntityTypeChanged>

Returns

KafkaOptionsExtension

Remarks

WithProducerConfig(ProducerConfigBuilder)

The optional ProducerConfigBuilder

public virtual KafkaOptionsExtension WithProducerConfig(ProducerConfigBuilder producerConfigBuilder)

Parameters

producerConfigBuilder ProducerConfigBuilder

Returns

KafkaOptionsExtension

WithStreamsConfig(StreamsConfigBuilder)

The optional StreamsConfig used when UseCompactedReplicator is false

public virtual KafkaOptionsExtension WithStreamsConfig(StreamsConfigBuilder streamsConfigBuilder)

Parameters

streamsConfigBuilder StreamsConfigBuilder

Returns

KafkaOptionsExtension

WithTopicConfig(TopicConfigBuilder)

The optional TopicConfigBuilder used when topics shall be created

public virtual KafkaOptionsExtension WithTopicConfig(TopicConfigBuilder topicConfigBuilder)

Parameters

topicConfigBuilder TopicConfigBuilder

Returns

KafkaOptionsExtension

WithUseByteBufferDataTransfer(bool)

Setting this property to true the engine prefers to use ByteBuffer data exchange in serializer instances

public virtual KafkaOptionsExtension WithUseByteBufferDataTransfer(bool useByteBufferDataTransfer = false)

Parameters

useByteBufferDataTransfer bool

Returns

KafkaOptionsExtension

WithUseDeletePolicyForTopic(bool)

Use delete cleanup policy when a topic is created

public virtual KafkaOptionsExtension WithUseDeletePolicyForTopic(bool useDeletePolicyForTopic = false)

Parameters

useDeletePolicyForTopic bool

Returns

KafkaOptionsExtension

WithUseEnumeratorWithPrefetch(bool)

Setting this property to true the engine prefers to use enumerator instances able to do a prefetch on data speeding up execution

public virtual KafkaOptionsExtension WithUseEnumeratorWithPrefetch(bool useEnumeratorWithPrefetch = true)

Parameters

useEnumeratorWithPrefetch bool

Returns

KafkaOptionsExtension

Remarks

Used only if UseCompactedReplicator is false and UseKNetStreams is true, not available in EFCore 6.

WithUseKNetStreams(bool)

Use KNet version of Apache Kafka Streams instead of standard Apache Kafka Streams

public virtual KafkaOptionsExtension WithUseKNetStreams(bool useKNetStreams = true)

Parameters

useKNetStreams bool

Returns

KafkaOptionsExtension

WithUseNameMatching(bool)

The optional handler to be used to receive notification when the back-end triggers a data change.

public virtual KafkaOptionsExtension WithUseNameMatching(bool useNameMatching = true)

Parameters

useNameMatching bool

Returns

KafkaOptionsExtension

Remarks

WithUsePersistentStorage(bool)

Use persistent storage when Apache Kafka Streams is in use

public virtual KafkaOptionsExtension WithUsePersistentStorage(bool usePersistentStorage = false)

Parameters

usePersistentStorage bool

Returns

KafkaOptionsExtension

WithValueContainerType(Type)

The optional Type to use as value container

Default value is DefaultValueContainer<TKey>, any custom Type shall implement IValueContainer<T>

public virtual KafkaOptionsExtension WithValueContainerType(Type serializationType)

Parameters

serializationType Type

Returns

KafkaOptionsExtension

WithValueSerDesSelectorType(Type)

The optional Type to use for value serialization selection

Default value is DefaultKEFCoreSerDes.ValueContainer<T>, any custom Type shall implement ISerDesSelector<T>

public virtual KafkaOptionsExtension WithValueSerDesSelectorType(Type serializationType)

Parameters

serializationType Type

Returns

KafkaOptionsExtension