Move Nexus notification to standalone task #1584
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously, we would spawn a new
tokio::task
in theDownstairs
to do an async notification to Nexus, iff thenotify-nexus
feature was enabled. This is awkward for a few reasons:mod downstairs
notify-nexus
is enabled, which means that it's easy to have something that builds locally but fails in CIThis PR moves Nexus notifications to a separate
notify
module, which runs a single task to do these notifications in one place. It communicates to the rest of Crucible through a queue; if the queue fills up, we log and discard the notification request (since this is best-effort).All of this code is always compiled; we check the feature (using
cfg!(feature = "notify-nexus")
to determine whether it's actually enabled. This module is responsible for translating into Nexus types, so they don't leak into the rest of the codebase.