KafkaFlow assembly
KafkaFlow namespace
public type | description |
---|---|
static class BatchingExtensions | no needed |
static class ConfigurationBuilderExtensions | Provides extension methods over IConsumerConfigurationBuilder and IProducerConfigurationBuilder |
delegate ConsumerCustomFactory | A factory to decorates the consumer created by KafkaFlow |
static class ConsumerMiddlewareConfigurationBuilder | No needed |
static class ConsumerThrottlingConfigurationBuilderExtensions | Provides extension methods for configuring consumer throttling in KafkaFlow. |
interface IKafkaBus | Provides access to the kafka bus operations |
interface IMessageProducer<TProducer> | Provides access to the kafka message producer |
interface IMessageProducer | Provides access to the kafka producer |
class MessageHeaders | Collection of message headers |
delegate ProducerCustomFactory | A factory to decorates the producer created by KafkaFlow |
static class ProducerMiddlewareConfigurationBuilder | No needed |
record TopicMetadata | |
class TopicPartitionMetadata | |
class TypedHandlerConfigurationBuilder | Builder class for typed handler configuration |
KafkaFlow.Clusters namespace
public type | description |
---|---|
interface IClusterManager | Provides access to Cluster administration |
KafkaFlow.Configuration namespace
public type | description |
---|---|
class ClusterConfiguration | Represents the cluster configuration values |
interface IConsumerConfiguration | Represents the Consumer configuration values |
interface IProducerConfiguration | Represents the producer configuration values |
class KafkaConfiguration | Represents the kafka configuration values |
class KafkaFlowConfigurator | A class to configure KafkaFlow |
class MiddlewareConfiguration | Represents a middleware configuration |
class PendingOffsetsStatisticsHandler | Represents a handler for pending offsets statistics. |
class TopicConfiguration | Represents a Topic configuration |
KafkaFlow.Consumers namespace
public type | description |
---|---|
enum ConsumerStatus | An enum with all consumer status |
interface IConsumer | Represents a KafkaFlow consumer |
interface IConsumerAccessor | Provides access to the configured consumers |
interface IConsumerFlowManager | The consumer flow manager |
interface IConsumerMiddlewareContext | Provides access to the current consumer's middleware context. |
interface IMessageConsumer | Provides access to the kafka message consumer |
class TopicPartitionLag | Represents the lag in a specific topic and partition |
KafkaFlow.Consumers.DistributionStrategies namespace
public type | description |
---|---|
class BytesSumDistributionStrategy | This strategy sums all bytes in the message key and apply a mod operator with the total number of workers, the resulting number is the worker ID to be chosen This algorithm is fast and creates a good work balance. Messages with the same message key are always delivered in the same worker. Set an optimal message buffer value to avoid idle workers (it will depends how many messages with the same message key are consumed) |
class FreeWorkerDistributionStrategy | This strategy chooses the first free worker to process the message. When a worker finishes the processing, it notifies the worker pool that it is free to get a new message This is the fastest and resource-friendly strategy (the message buffer is not used) but messages with the same partition key can be delivered in different workers, so, no message order guarantee |
class PartitionKeyDistributionStrategy | This strategy applies a mod operator to the partition key and the total number of workers, the resulting number is the worker ID to be chosen This algorithm is fast and creates a good work balance. Messages with the same partition key are always delivered in the same worker, so, message order is guaranteed In cases where the number of partitions assigned to the consumer is small, this strategy can limit the number of available workers to distribute the messages. |
KafkaFlow.Middlewares.Compressor namespace
public type | description |
---|---|
class CompressorProducerMiddleware | Middleware to compress the messages when producing |
class DecompressorConsumerMiddleware | Middleware to decompress the messages when consuming |
KafkaFlow.Middlewares.ConsumerThrottling namespace
public type | description |
---|---|
interface IConsumerThrottlingAction | Defines a throttling action that can be executed by a KafkaFlow consumer. |
interface IConsumerThrottlingMetric | Defines a metric that is used by the KafkaFlow consumer throttling feature. |
KafkaFlow.Middlewares.ConsumerThrottling.Configuration namespace
public type | description |
---|---|
interface IConsumerThrottlingActionConfigurationBuilder | Provides a builder interface for setting up actions in the KafkaFlow consumer throttling feature. |
interface IConsumerThrottlingActionsConfigurationBuilder | Provides methods to configure throttling actions for KafkaFlow consumers. |
interface IConsumerThrottlingMetricConfigurationBuilder | An interface to configure the throttling metrics for KafkaFlow consumers. |
interface IConsumerThrottlingThresholdActionConfigurationBuilder | An interface to configure the actions applied when a throttling threshold is met. |
KafkaFlow.Middlewares.Serializer namespace
public type | description |
---|---|
class DeserializerConsumerMiddleware | Middleware to deserialize messages when consuming |
class SerializerProducerMiddleware | Middleware to serialize messages when producing |
KafkaFlow.Middlewares.Serializer.Resolvers namespace
public type | description |
---|---|
interface IMessageTypeResolver | Used by the serializer middleware to resolve the type when consuming and store it when producing |
class SingleMessageTypeResolver | The message type resolver to be used when all messages are the same type |
KafkaFlow.Producers namespace
public type | description |
---|---|
class BatchProduceException | Exception thrown by BatchProduceAsync |
static class BatchProduceExtension | No needed |
class BatchProduceItem | Represents a message to be produced in batch |
interface IProducerAccessor | Provides access to the configured producers |