https://github.com/project-monai/monai-deploy-messaging
MONAI Deploy communication system between clinical data pipelines components
https://github.com/project-monai/monai-deploy-messaging
Last synced: 7 months ago
JSON representation
MONAI Deploy communication system between clinical data pipelines components
- Host: GitHub
- URL: https://github.com/project-monai/monai-deploy-messaging
- Owner: Project-MONAI
- License: apache-2.0
- Created: 2022-03-30T22:14:29.000Z (about 4 years ago)
- Default Branch: develop
- Last Pushed: 2025-03-24T22:54:33.000Z (about 1 year ago)
- Last Synced: 2025-09-02T17:57:25.069Z (7 months ago)
- Language: C#
- Size: 775 KB
- Stars: 4
- Watchers: 14
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
💡 If you want to know more about MONAI Deploy WG vision, overall structure, and guidelines, please read [MONAI Deploy](https://github.com/Project-MONAI/monai-deploy) first.
# MONAI Deploy Messaging
[](LICENSE)
[](https://codecov.io/gh/Project-MONAI/monai-deploy-messaging)
[](https://github.com/Project-MONAI/monai-deploy-messaging/actions/workflows/ci.yml)
[](https://www.nuget.org/packages/Monai.Deploy.Messaging/)
The MONAI Deploy Messaging library for MONAI Deploy clinical data pipelines system enables users to extend the system to external message broker services by implementing the [IMessageBrokerPublisherService](src/Messaging/API/IMessageBrokerPublisherService.cs) and [IMessageBrokerSubscriberService](src/Messaging/API/IMessageBrokerSubscriberService.cs) APIs. The APIs allow the users to plug in any other message broker services, such as [Apache Kafka](https://kafka.apache.org/intro) and [Azure Service Bus](https://azure.microsoft.com/en-us/services/service-bus/).
Currently supported message broker services:
- [RabbitMQ](https://www.rabbitmq.com/)*
\* Services provided may not be free or requires special license agreements. Please refer to the service providers' website for additional terms and conditions.
If you would like to use a message broker service not listed above, please file an [issue](https://github.com/Project-MONAI/monai-deploy-messaging/issues) and contribute to the repository.
---
## Installation
### 1. Configure the Service
To use the MONAI Deploy Messaging library, install the [NuGet.Org](https://www.nuget.org/packages/Monai.Deploy.Messaging/) package and call the `AddMonaiDeployMessageBrokerSubscriberService(...)` and/or the `AddMonaiDeployMessageBrokerPublisherService(...)` method to register the dependencies:
```csharp
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
...
// Register the subscriber service
services.AddMonaiDeployMessageBrokerSubscriberService(hostContext.Configuration.GetSection("InformaticsGateway:messaging:publisherServiceAssemblyName").Value);
// Register the publisher service
services.AddMonaiDeployMessageBrokerPublisherService(hostContext.Configuration.GetSection("InformaticsGateway:messaging:subscriberServiceAssemblyName").Value);
...
});
```
### 2. Install the Plug-in
1. Create a subdirectory named `plug-ins` in the directory where your main application is installed.
2. Download the zipped plug-in of your choice and extract the files to the `plug-ins` directory.
3. Update `appsettings.json` and set the `publisherServiceAssemblyName` and the `subscriberServiceAssemblyName`, e.g.:
```json
"messaging": {
"publisherServiceAssemblyName": "Monai.Deploy.Messaging.RabbitMQ.RabbitMQMessagePublisherService, Monai.Deploy.Messaging.RabbitMQ",
"publisherSettings": {
...
},
"subscriberServiceAssemblyName": "Monai.Deploy.Messaging.RabbitMQ.RabbitMQMessageSubscriberService, Monai.Deploy.Messaging.RabbitMQ",
"subscriberSettings": {
...
}
},
```
### 3. Restrict Acess to the Plug-ins Directory
To avoid tampering of the plug-ins, it is recommended to set access rights to the plug-ins directory.
---
## Releases
The MONAI Deploy Messaging library is released in NuGet format, which is available on both [NuGet.Org](https://www.nuget.org/packages/Monai.Deploy.Messaging/) and [GitHub](https://github.com/Project-MONAI/monai-deploy-messaging/packages/1365839).
### Official Builds
Official builds are made from the `main` branch.
### RC Builds
Release candidates are built and released from the `release/*` branches.
### Development Builds
Development builds are made from all branches except the `main` branch and the `release/*` branches. The NuGet packages are released to [GitHub](https://github.com/Project-MONAI/monai-deploy-messaging/packages/1365839) only.
## Contributing
For guidance on contributing to MONAI Deploy Messaging, see the [contributing guidelines](https://github.com/Project-MONAI/monai-deploy/blob/main/CONTRIBUTING.md).
Join the conversation on Twitter [@ProjectMONAI](https://twitter.com/ProjectMONAI) or join our [Slack channel](https://forms.gle/QTxJq3hFictp31UM9).
Ask and answer questions over on [MONAI Deploy Messaging's GitHub Discussions tab](https://github.com/Project-MONAI/monai-deploy-messaging/discussions).
## License
Copyright (c) MONAI Consortium. All rights reserved.
Licensed under the [Apache-2.0](LICENSE) license.
This software uses the Microsoft .NET 6.0 library, and the use of this software is subject to the [Microsoft software license terms](https://dotnet.microsoft.com/en-us/dotnet_library_license.htm).
By downloading this software, you agree to the license terms & all licenses listed on the [third-party licenses](third-party-licenses.md) page.
## Links
- Website:
- Code:
- Project tracker:
- Issue tracker:
- Test status: