Releases: tinglesoftware/eventbus
0.12.1
What's Changed
- Handling of InMemory transport errors, #396
- Fixes for logging parameters named
EventId
andEventIds
, #413
Full Changelog: 0.12.0...0.12.1
0.12.0
Major
- Better handling of EntityKind for SQS/SNS transport in #377
- Support for Azure IoT Hub with operational models in #379, #382
- Azure Event Hubs configurable checkpoint frequency in #384
Minor
- Cleanup samples in #378
- Better serializer resolution in #380
- Access raw transport data in serializers in #381
Full Changelog: 0.11.1...0.12.0
0.11.1
What's Changed
- Expose
HostInfo
for incoming events, #375 - Make use of
LoggerMessage
to improve performance, #376 - Useful extensions for working with headers in EventContext, #374
Full Changelog: 0.11.0...0.11.1
0.11.0
What's Changed
Breaking!!!
- Remove health checks; developer/user should decide (#317).
- Header values for EventContext and EventEnvelope changed from object to string to max compatibility (#337).
Tingle.EventBus.Serializers.Xml
is no longer produced. Instead, theXmlEventSerializer
is included in the baseTingle.EventBus
package (#331).- Consumer instances are created each time instead of registration into IoC(#323).
Other
Full Changelog: 0.10.0...0.11.0
0.10.0
New:
- Configurable EventId generator (#242)
- Add support for XML serializer (#236, #274)
- Added
Tingle.EventBus.Transports.Azure.Abstractions
that houses common logic for Azure based transports - Support for
TokenCredential
alongside ConnectionString in all Azure based transports - Rewrite implementation for InMemory transport (#273, #266)
- Simple reusable Retryable event logic (#286)
- Pluggable configurators for
EventRegistration
andEventConsumerRegistration
(#223) - Basic implementation of readiness check for the bus, transport, and per event using health checks in the application (#188)
Breaking:
- Use
System.BinaryData
where possible instead of passing along different formats. (#264) - Configurations namespace (#285)
- Result for scheduling is now
ScheduledResult
instead of a string. The former is a struct with more information but can be implicitly converted/assigned to a string (#243) - Nullable Reference Types (#234) and C# 9 Support (#233)
- Shared serialization logic (#235)
- Consumers are now configured during addition/registration (#164)
Fixes:
- Remove unused
InMemoryTransportOptions.DeliveryDelay
- DefaultMessageTimeToLive should only be set when not in BasicTier
- Remove unnecessary ToString(...) calls in KafkaTransport
- Do not close stream when using reader/writer in NewtonsoftJson serializer
- Simplify configuration of NewtonsoftJson as default event serializer
- Name changes for extension methods on
EventContext
used in ServiceBus
Other:
- Mark EventBusHealthCheck as obsolete (#294)
- Change default value for
MaxAutoLockRenewDuration
in ServiceBus from 5min to 10min - Merge Defaults used in ServiceBus into
AzureServiceBusTransportOptions
- Access transport name directly instead of via type
Dependencies:
- Bump AWSSDK.Core from 3.7.0.12 to 3.7.3.20
- Bump AWSSDK.Kinesis from 3.7.0.11 to 3.7.0.80
- Bump AWSSDK.SimpleNotificationService from 3.7.0.12 to 3.7.2.51
- Bump AWSSDK.SQS from 3.7.0.12 to 3.7.1.23
- Bump Azure.Core from 1.8.1 to 1.20.0
- Bump Azure.Messaging.EventHubs.Processor from 5.4.0 to 5.6.2
- Bump Azure.Messaging.ServiceBus from 7.1.2 to 7.4.0
- Bump Azure.Storage.Queues from 12.6.1 to 12.8.0
- Bump Confluent.Kafka from 1.6.3 to 1.8.1
- Bump Microsoft.Extensions.Diagnostics.HealthChecks from 5.0.5 to 5.0.11
- Bump RabbitMQ.Client from 6.2.1 to 6.2.2 (#208)
0.9.0
New:
Configurable behaviour when unhandled consumer errors/exceptions are caught on the consumer level (EventConsumerRegistration
) with defaults that can be set on the transport and/or the bus. The UnhandledConsumerErrorBehaviour
has options for Discard
and Deadletter
which can be used to suit the desired behaviour. The end action is transport-specific. For example, In Azure ServiceBus, each entity has a subentity for dead lettering whereas for Kafka, the event is published on a new topic with the -deadletter
suffix.
Other:
- Azure Service Bus transport supports the Basic tier and will check before deciding whether to use a queue or topic. When the namespace is in the Basic SKU/tier, all entities default to queues and certain properties are not set on the queue to match the limitations of the tier.
- Bump AWSSDK.Core from 3.7.0.10 to 3.7.0.12 (#151)
- Bump AWSSDK.Kinesis from 3.7.0.9 to 3.7.0.11 (#150)
- Bump AWSSDK.SimpleNotificationService from 3.7.0.10 to 3.7.0.12 (#148)
- Bump Azure.Messaging.ServiceBus from 7.1.1 to 7.1.2 (#149)
- Bump AWSSDK.SQS from 3.7.0.10 to 3.7.0.12 (#147)
Retry policies, better defaults and more ...
New:
- Support for retry policies per consumer (i.e. each
EventConsumerRegistration
) or per transport or default on the bus. - Support for configuration of entity type via options or via attribute (possible values are
Broadcast
andQueue
. - Better defaults in Azure Service Bus when creating entities
- Options for processors, consumers in the transport are created with default values that can be overridden instead of having to decide which options to set.
- Amazon-based (SQS, SNS, Kinesis) transports support setting of credentials optional to
AccessKey
andAccessSecret
. - Amazon-based transports are not available as NuGet packages (
Tingle.EventBus.Transports.Amazon.Sqs
andTingle.EventBus.Transports.Amazon.Kinesis
).
Fixed:
- Serializers produces JSON that is not indented by default.
- Event serializer type now has the final full type name not the interface in the Activity Tags
0.7.0
New:
- Suffixing
ConsumerName
with theEventName
is now optional. HostInfo
can now be overridden or edited for scenarios where more or different information is needed.
Fixes:
- Fix scheduling messages for Azure Service Bus (use
scheduled.UtcDateTime
and notscheduled.DateTime
). - Consumer length for Azure Service Bus is only checked when
UseBasicTier
is false.
Breaking:
- Options related to naming (e.g. generation and sanitization) moved from
EventBusOptions
toEventBusNamingOptions
configured viaEventBusOptions.Naming
. Instead ofoptions.Scope = "dev"
dooptions.Naming.Scope = "dev"
EventBusOptions
moved to theMicrosoft.Extensions.DependencyInjection
namespace.
Dependencies:
- Bump AWSSDK.Core from 3.5.2.5 to 3.5.2.7
- Bump AWSSDK.Kinesis from 3.5.0.65 to 3.5.0.67
- Bump AWSSDK.SQS from 3.5.1.14 to 3.5.1.16
- Bump AWSSDK.SimpleNotificationService from 3.5.1.37 to 3.5.1.39
0.6.1
New: None
Fixes:
- Fix scheduled time check for
InMemoryTRansport
.
Breaking:
- Generated names for Azure Service Bus transport exceeding 50 characters will throw an exception.
PublishAsync(...)
withscheduled
in the past, will throw an exception.ConfigureEvent<TEvent>(...)
andConfigureConsumer<TEvent, TConsumer>(...)
moved fromEventBusBuilder
toEventBusOptions
. Instead ofbuilder.ConfigureEvent(...)
, dobuilder.Configure(options => options.ConfigureEvent(...))
.
Dependencies:
- Bump AWSSDK.Core from 3.5.2 to 3.5.2.5
- Bump AWSSDK.Kinesis from 3.5.0.61 to 3.5.0.65
- Bump AWSSDK.SQS from 3.5.1.10 to 3.5.1.14
- Bump AWSSDK.SimpleNotificationService from 3.5.1.33 to 3.5.1.37
0.6.0
New:
- Support trimming common suffixes (Event, Consumer, EventConsumer) by default e.g.
SimpleEvent
becomesSimple
,SimpleEventConsumer
becomesSimple
. This behaviour can be disabled by settingTrimTypeNames = false
. - Support for
Metadata
inEventRegistration
andEventConsumerRegistration
.
Fixes:
- Support for multiple consumers for the same event in one application domain so long as the transport allows it.
Breaking:
- RabbitMQ requires use of full types names e.g.
services.AddEventBus(builder => builder.Configure(o => o.UseFullTypeNames = true))
- Use of short names is allowed for consumer names.
- Kafka transport does not support more than one consumer per event in the same application.
- Azure Storage Queues transport does not support more than one consumer per event in the same application.
ConsumerRegistration
renamed toEventConsumerRegistration
and canonly exist in the context of anEventRegistration
Dependencies:
- Bump AWSSDK.Core from 3.5.1.59 to 3.5.2.0
- Bump AWSSDK.Kinesis from 3.5.0.59 to 3.5.0.61
- Bump AWSSDK.SQS from 3.5.1.8 to 3.5.1.10
- Bump AWSSDK.SimpleNotificationService from 3.5.1.31 to 3.5.1.33
- Bump System.Text.Json from 5.0.0 to 5.0.1