Skip to content

Releases: epam/epam-kafka

v2.5.197

17 Jan 10:14
Compare
Choose a tag to compare

What's Changed

Epam.Kafka

  • Confluent.Kafka and Confluent.SchemaRegistry dependency updated to v2.8.0. Microsoft.Extensions dependencies updated to v8.0.0.
  • Added test mock cluster (localhost listener for testing purposes) use kafkabuilder.WithTestMockCluster(...) to be able to use mock cluster in IKafkaFactory or use public sealed class TestMockCluster directly.

Epam.Kafka.PubSub

  • Added subscription that will consume messages from kafka, process them by converting to output messages, and finally publish result of conversion to kafka. In case of kafka internal offsets storage and publishing to same cluster from which data was consumed it is possible to update offsets and publish result in same transaction. Use kafkabuilder.AddReplication(...)
  • Added validation for incorrect consumer group value usage in some cases.

v2.4.162

03 Dec 07:26
Compare
Choose a tag to compare

What's Changed

Epam.Kafka

  • Fixed bug for concurrent creation of producer/consumer
  • Added log message for schema registry client creation.
  • Added default parameter to public KafkaClusterOptions WithOAuthHandler(Func<string?, OAuthRefreshResult> createToken, bool throwIfAlreadySet = false) to optionally throw exception if oauth handler already configured in builder. Fixed nullability.
  • Code analysis fixes and net9.0 for CI pipeline

v2.3.145

01 Oct 11:31
Compare
Choose a tag to compare

What's Changed

Epam.Kafka.PubSub.EntityFramework(Core/6)

  • DbContextEntityPublicationHandler default implementation for IsQueued property changed. Now it take into account KafkaPubNbf value for Queued, Error, Delivered statuses. Previously KafkaPubNbf value was applied for Error and Delivered statuses only.
  • DbContextPublicationHandler default implementation for GetEntities method changed. Now it perform buffering of selected entities to array to avoid potential problems with Multiple Active Result Sets (MARS)

v2.3.140

16 Jul 09:33
a15a4eb
Compare
Choose a tag to compare

What's Changed

Epam.Kafka

  • The default implementation of IKafkaFactory.GetOrCreateClient now uses a producer configuration named shared, so its behavior can be customized.
  • Consumers, producers, and client created by the default IKafkaFactory implementation can now be casted to IObservable<Error> to receive notifications from the error handler and to IObservable<string> to receive statistics.

Epam.Kafka.HealthChecks

  • Added a new package containing the WithHealthCheck extension method for registering a cluster health check.

Epam.Kafka.PubSub

  • Fixed topic partition pausing and resuming in subscription background service.
  • Added commit offsets to Kafka when assigning a partition if external state storage is used and the parameters allow it.
  • [Breaking Change] Background subscription service no longer use auto.offset.reset=earliest, isolation.level=read_commited, partition.assignment.strategy=CooperativeSticky as default values in the consumer config.
  • Added description to metrics.

Epam.Kafka.PubSub.EntityFramework(Core/6)

  • Fixed DbContextPublicationHandler not taking batch size into account when selecting queued objects from the database.

v2.2.84

19 Jun 08:04
c06f4a2
Compare
Choose a tag to compare

What's Changed

Epam.Kafka

  • API to support custom placeholders for Kafka:Consumers, Kafka:Producers, and Kafka:Clusters configuration sections when kafka builder added with useConfiguration = true parameter.
  • New extension methods to get and set dotnet.cancellation.delay.max.ms value for ConsumerConfig.
  • New extension methods to get and set dotnet.logger.category value for Config. It is non standard optional key to control logger category for default log handler assigned by default IKafkaFactory implementation.
  • New extension method to clone Kafka Config and optionally resolve placeholders.

Epam.Kafka.PubSub

  • [Breaking Change] Subscription background service don't set client.id config value automatically. Previously it was $"{AppDomain.CurrentDomain.FriendlyName}@{Environment.MachineName}:{this.Monitor.Name}".
  • [Breaking Change] Publication background service don't append it's name to transactional.id config value automatically. Previously it was config.TransactionalId += $"-{this.Monitor.Name}". Added validation to prevent different publication background services use same transactional.id config value.
  • Subscription and Publication background services can resolve special placeholder <name> (that reference name of subscription or publication) when it used in ConsumerConfig or ProducerConfig.

v2.1.55

07 Jun 11:03
d731b18
Compare
Choose a tag to compare

What's Changed

Epam.Kafka

  • Confluent.Kafka and Confluent.SchemaRegistry updated to 2.4.0
  • Minor fixes for log messages

Epam.Kafka.PubSub

  • Separate summary health checks for subscriptions and publications added
  • Polly updated to 8.4.0

Epam.Kafka.PubSub.EntityFramework6

v2.0.36

08 Apr 11:07
Compare
Choose a tag to compare

Initial release