Skip to content

Releases: BEagle1984/silverback

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.

v3.0.1

04 Apr 16:44
Compare
Choose a tag to compare
  • Fix IOutboxWriter lifecycle [#128]

See docs for details.

v3.0.0

14 Mar 18:13
Compare
Choose a tag to compare
  • Add support for MQTT
  • Simplify configuration and reduce boiler plate
  • Refactor Silverback.Integration to support streaming
  • Improve Kafka partitions handling
  • Add option to throw an exception if no subscriber is handling a message that was published to the internal bus or was consumed from a message broker
  • Handle null messages as Tombstone
  • Replace Newtonsoft.Json with System.Text.Json to improve serialization and deserialization performance
  • Improve outbound routing customization options with endpoint name resolvers
  • Add non-blocking Produce/ProduceAsync/RawProduce/RawProduceAsync overloads to IProducer, better suitable for higher throughput scenarios
  • Refactor broker event handlers
  • Add log levels configuration
  • Allow header names customization
  • Add consumer status information and statistics
  • Add basic consumers health check
  • Allow broker behaviors to be registered as transient, meaning that an instance will be created per each producer or consumer
  • Released some utilities to help writing automated tests involving Silverback.Integration
  • Upgrade to Confluent.Kafka 1.6.2
  • Upgrade to RabbitMQ.Client 6.2.1
  • Fix OutboxWorker not publishing custom headers [#102]

See docs for details.