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.3.0
Bug with DynamoDb Outbox and the Outbox Sweeper fixed. The Sweeper required a topic argument supplied by a dictionary of args
Required adding a Dictionary to various interfaces, which defaults to null, hence the minor version bump as these interfaces have new capabiities
Internal change to move outstanding message box to a semaphore slim over a mutex as thread-safe. Not strictly neededm, but follows our policy of moving to semaphore slim
Changes to the DynamoDb Outbox implementation as Outstanding Message check was not behaving as expected
The interfaces around Outbox configuration will likely change in v10 to avoid current split and need to configure on both publication and outbox
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
... (truncated)
Commits
1781601 Ensure that dotnet 6 doesn't get forced to EF 7 (#2389)
7c921c7 Create Extensions to allow for easier edition of the Json Seraliser inside of...
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 from 8.1.1399 to 9.3.5.
Changelog
Sourced from Paramore.Brighter's changelog.
... (truncated)
Commits
1781601
Ensure that dotnet 6 doesn't get forced to EF 7 (#2389)7c921c7
Create Extensions to allow for easier edition of the Json Seraliser inside of...06c99eb
fix(build): Add extentions tests to CIa63f68f
fix(tests): Fix broken extension tests0a60df2
chore(build): remove dotnet5 setup8eb5667
refactor: code cleanup78aa842
refactor(test): Remove System.Text.Json from net6.0 tests94487b3
fix: MySQL EF back down to 6 as 7 not supported yet994eb9c
chore(dependencies): latest dependencies updatesffbf8d2
fix: Multi-target netstandard2.0 and net6.0 in Brighter and libsDependabot 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)