Releases: BEagle1984/silverback
Releases · BEagle1984/silverback
v3.6.0
- 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
orMqttClientIdFilterAttribute
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
fromKafkaTestingHelper
andMqttTestingHelper
- 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
- 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
v3.3.1
v3.3.0
- 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
- 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
v3.1.0
- 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 whenConsumer.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
v3.0.0
- 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.