Skip to content

Releases: BEagle1984/silverback

v3.7.0

18 May 20:06
Compare
Choose a tag to compare
  • Implement basic support for Kafka transactions via KafkaTransactionalProducer
  • Skip chunking when processing single chunk messages
  • Fix possible race condition in consumer pipeline

See docs for details.

v3.6.1

24 Mar 10:56
Compare
Choose a tag to compare
  • Handle race condition in BatchSequence with timeout
  • Limit consumer status history

See docs for details.

v3.6.0

04 Mar 17:05
Compare
Choose a tag to compare
  • Handle IAsyncEnumerable<T> returned by the subscriber and republished the contained messages
  • Enrich Kafka messages moved by the MoveMessageErrorPolicy adding some extra headers containing some information about the source topic, partition, offset, etc.
  • Allow filters such as the KafkaGroupIdFilterAttribute or MqttClientIdFilterAttribute to be added to the subscribers at runtime via the configuration API
  • Add overload for Publish method in the error policies that forwards the exception as well as the envelope
  • Throw TimeoutException from KafkaTestingHelper and MqttTestingHelper
  • Improve MQTT connection related logs (info for successful reconnect and add broker name to log messages)
  • Support shared sessions in mocked MQTT broker
  • Ensure each consumed message gets a unique traceId (when the traceparent header is not present)
  • Fix memory leak in consumer
  • Fully validate messages, including nested objects

See docs for details.

v3.5.0

31 Oct 13:56
Compare
Choose a tag to compare
  • Log MqttClient internal events
  • Upgrade to Confluent.Kafka 1.8.2
  • Upgrade to MQTTnet 3.0.16
  • Upgrade to RabbitMQ.Client 6.2.2
  • Update several dependencies
  • Fix MqttConsumer reconnection issues
  • Handle edge cases related to MQTT acknowledgment timeout in MqttConsumer
  • Allow max retries specification and error policies chains with MQTT V3

See docs for details.

v3.4.0

27 Sep 19:07
Compare
Choose a tag to compare
  • Support encryption key rotation

See docs for details.

v3.3.1

03 Sep 16:05
Compare
Choose a tag to compare
  • Fix AddHeaders<TMessage> and WithKafkaKey<TMessage> not being correctly invoked by all IProducer.Produce and IProducer.ProducerAsync overloads
  • Add endpoint friendly name to all logs

See docs for details.

v3.3.0

29 Aug 15:35
Compare
Choose a tag to compare
  • Optimize in-memory mocked Kafka (avoid spawning too many threads)
  • Support multiple brokers (with overlapping topic names) in mocked Kafka and MQTT
  • Add message validation for both producer and consumer
  • Add new AddInbound overloads specifying message type for a more compact configuration when using the typed deserializer
  • Invoke the Kafka partition EOF callback for all connected consumers
  • Ignore null or empty Kafka key in producer

See docs for details.

v3.2.0

13 Jul 12:24
Compare
Choose a tag to compare
  • Add new Kafka partition EOF callback to be notified when the end of a partition is reached by the consumer
  • Allow multiple calls to IKafkaConsumerEndpointBuilder.Configure or IKafkaProducerEndpointBuilder.Configure for the same endpoint
  • Observe a grace period in the ConsumersHealthCheck to prevent false positives during a normal Kafka rebalance
  • Add optional friendly name to the endpoints
  • Allow filtering the endpoints targeted by the ConsumersHealthCheck

See docs for details.

v3.1.1

28 Jun 21:01
Compare
Choose a tag to compare
  • Invoke broker callbacks during the application shutdown to allow custom code to be run when disconnecting

See docs for details.

v3.1.0

28 Jun 17:04
Compare
Choose a tag to compare
  • Add new ways to configure headers and kafka key
  • New callbacks for Kafka log events
  • Improve consumer status tracking introducing ConsumerStatus.Ready
  • Try to automatically recover from Kafka maximum poll interval exceed errors
  • Improve Kafka static partition assignment with resolver function and fetching the available partitions
  • Upgrade to Confluent.Kafka 1.7.0
  • Upgrade to MQTTnet 3.0.15
  • Prevent possible race condition causing messages to be skipped when a RetryPolicy kicks in for messages from multiple Kafka partitions simultaneously
  • Prevent ObjectDisposedException to be thrown when Kafka events (e.g. statistics) are fired during the application shutdown
  • Prevent ObjectDisposedException to be thrown when Consumer.Dispose is called multiple times
  • Properly clear the trace context (Activity) when reconnecting the consumer to prevent the newly started consume loop to be tracked under the current message traceId
  • Fix wrong prefix in MQTT log event names

See docs for details.