Skip to content

Releases: tinglesoftware/eventbus

0.12.1

25 Apr 06:01
422f664
Compare
Choose a tag to compare

What's Changed

  • Handling of InMemory transport errors, #396
  • Fixes for logging parameters named EventId and EventIds, #413

Full Changelog: 0.12.0...0.12.1

0.12.0

10 Feb 03:43
f6c8cf9
Compare
Choose a tag to compare

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

23 Dec 07:21
1e8a091
Compare
Choose a tag to compare

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

06 Dec 15:19
Compare
Choose a tag to compare

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, the XmlEventSerializer is included in the base Tingle.EventBus package (#331).
  • Consumer instances are created each time instead of registration into IoC(#323).

Other

  • .NET 6 and multi-target support (#354, #355)
  • Reuse scoped IServiceProvider in #324

Full Changelog: 0.10.0...0.11.0

0.10.0

14 Oct 11:02
fd442ff
Compare
Choose a tag to compare

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 and EventConsumerRegistration (#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

19 Apr 06:10
Compare
Choose a tag to compare

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 ...

31 Mar 06:45
Compare
Choose a tag to compare

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 and Queue.
  • 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 and AccessSecret.
  • Amazon-based transports are not available as NuGet packages (Tingle.EventBus.Transports.Amazon.Sqs and Tingle.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

08 Feb 07:09
7e483e7
Compare
Choose a tag to compare

New:

  • Suffixing ConsumerName with the EventName 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 not scheduled.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 to EventBusNamingOptions configured via EventBusOptions.Naming. Instead of options.Scope = "dev" do options.Naming.Scope = "dev"
  • EventBusOptions moved to the Microsoft.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

01 Feb 10:17
Compare
Choose a tag to compare

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(...) with scheduled in the past, will throw an exception.
  • ConfigureEvent<TEvent>(...) and ConfigureConsumer<TEvent, TConsumer>(...) moved from EventBusBuilder to EventBusOptions. Instead of builder.ConfigureEvent(...), do builder.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

25 Jan 07:06
d7396d0
Compare
Choose a tag to compare

New:

  • Support trimming common suffixes (Event, Consumer, EventConsumer) by default e.g. SimpleEvent becomes Simple, SimpleEventConsumer becomes Simple. This behaviour can be disabled by setting TrimTypeNames = false.
  • Support for Metadata in EventRegistration and EventConsumerRegistration.

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 to EventConsumerRegistration and canonly exist in the context of an EventRegistration

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