With this release we update our Kafka transport dependency on Confluent's .NET library to 1.9.2 (which in turn uses librdkafka 1.9.2). That means that you can use the Kafka transport on an M1 Mac without issue.
9.1.16 🌈
Changes
#2194 [CT] Using UTC in MSSQL / MYSQL outbox, as this is the timezone… @catalintoma (#2196)
9.1.15
Upgrade dependencies
9.1.4
Changes
patch(doco): HowToRelease - remove old release @preardon (#2173)
[Snyk] Security upgrade rabbitmq from 3.8-management to management @snyk-bot (#2175)
When we push a collection of functionality it is available via nuget.org and symbol files are published to symbolsource.org
This section lists features in master, available by AppVeyor, but not yet deployed to nuget.org.
Master
Release 9.1.20
Bug with Kafka Consumer failing to commit offsets fixed. Caused by Monitor being used for a lock on one thread and released on another, which does not work. Replaced with SemaphoreSlim.
Behavior of Kafka Consumer offset sweep changed. It now runs every x seconds, and not every x seconds since a flush. This will cause it to run more frequently, but it is easier to reason about.
Release 9.1.14
Fixed missing negation operator when checking for AWS resources
Release 9.1.14
Renamed MessageStore to Outbox and CommandStore to Inbox for clarity with well-known pattern names outside this team
Impact is wide, namespaces, class names and project names, so this is a BREAKING CHANGE
Mostly you can search and replace to fix
Added support for a global inbox via a UseInbox configuration parameter to the Command Processor
Will insert an Inbox in all pipelines
Can be overriden by a NoGlobalInbox attribute for don't add to pipeline, or an alternative UseInbox attribute to vary config
The goal here is to be clearer than our own internal names, which don't help folks who were not part of this team
The Outbox now fills up if a producer fails to send. You can set an upper limit on your producer, which is the maximum outstanding messages that you want in the Outbox before we throw an exception. This is not the same as Outbox size limits or sweeper, which is seperate and mainly intended if you don't want the Outbox limit to fail-fast on hitting a limit but keep accumulating results
Added caching of attributes on target handlers in the pipeline build step
This means we don't do reflection every time we build the pipeline for a request
We do still always call the handler factory to instantiate as we don't own handler lifetime, implementer does
We added a method to clear the pipeline cache, particularly for testing where you want to test configuration scenarios
Added ability to persist RabbitMQ messages
Added subscription to blocked/unblocked RMQ channel events. A warning log is created when a channel becomes blocked and an info log is generated when the channel becomes unblocked.
Improved the Kafka Client. It now uses the publisher/creator model to ensure that a message is in Brighter format i.e. headers as well as body; updated configuration values; generally improved reliability. This is a breaking change with previous versions of the Kafka client.
The class BrighterMessaging now only has a default constructor and now has setters on properties. Use the initializer syntax instead - new BrighterMessage{} to avoid having redundant constructor arguments.
Changes to how we configure transports - renaming classes and extending their functionality
Connection is renamed to Subscription
Added a matching Publication for producers
Base class includes the attributes that Brighter Core (Brighter & ServiceActivator) need
Derived classes contain transport specific details
On SQSConnection, renamed VisibilityTimeout to LockTimeout to more generically describe its purpose seperated from GatewayConfiguration, that now has a marker interface, used to connect to the Gateway and not about how we publish or subscribe
We now have the option to declare infastructure separately and Validate or Assume it exists, still have an option to Create which is the default
We think it will be most useful for environments like AWS where there is a price to checking (HTTP call, and often looping through results)
Added support for a range of parameters that we did not have before such as dead letter queues, security etc via these platform specific configuration files
Provided a short form of the BrighterMessaging constructor, that queries object provided for async versions of interfaces
Changed IsAsync to RunAsync on a Subscription for clarity
Supports an async pipeline: callbacks should happen on the same thread as the handler (and the pump), avoiding thread pool threads
Fixed issue in SQlite with SQL to mark a message as dispatched
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps Paramore.Brighter.Extensions.DependencyInjection from 2.0.4 to 9.2.1.
Release notes
Sourced from Paramore.Brighter.Extensions.DependencyInjection's releases.
... (truncated)
Changelog
Sourced from Paramore.Brighter.Extensions.DependencyInjection's changelog.
... (truncated)
Commits
e5e5b3b
Split Tests (#2303)467eed7
Add initial OpenTelemetry (Tracing) Support (#2285)eb7bba7
Merge remote-tracking branch 'origin/master'1e6fc20
We don't need multiple docs folderse89c343
Examples should show Darker attributes too (#2300)56e4f2a
AWS package uppdate2637857
Merge remote-tracking branch 'origin/master'71045ce
Samples need middlewareaac1134
Intial Plumb in of Bulk Deposit Async (#2264)f2c52f3
Updating package referencesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)