Initial implementation of the event bus service #976
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.
This PR aims to provide an event bus communication channel for cross module interaction within blish core.
Each event identifier is based on the modules namespace and an event id (string) which can be freely choosen.
The content is typed as an object to allow module devs to accept any kind of data.
The actions which are executed for subscribers are designed with async tasks in mind.
Upon dispatching an event, all subscribers are executed in parallel.
If the registering module is dispatching an event but there are no subscribers no exception is thrown.
If the calling module is trying to dispatch an event to the registering module an exception is thrown if there are no subscribers. (Registering module is disabled or the event simple does not exist)
Discussion Reference
All new features must be discussed prior to code review. This is to ensure that the implementation aligns with other design considerations. Please link to the Discord discussion:
https://discord.com/channels/531175899588984842/599270434642460753/1265237773019779142
Is this a breaking change?
Breaking changes require additional review prior to merging. If you answer yes, please explain what breaking changes have been made.
No