Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Overview
To achieve similar functionality as with internal systems - pushing information about new cases - but without connection to our internal Rabbit queueing system, external RabbitMQ instance is introduced.
Every client will have separate queue with template queue name: dis_notifications_{CLIENT_NAME}.
Every time case is created / updated / close / deleted message is sent to each client's queue who have permission to see that specific case.
General
To get notifications about cases you need to connect to Rabbit instance:
Environment | URL |
---|---|
DEV | https://dev-external-rabbit.egdw.dk:5671/dis |
QA | https://qa-external-rabbit.egdw.dk:5671/dis |
RC | https://rc-external-rabbit.egdw.dk:5671/dis |
External test | |
Pre-PROD | |
PROD | https://external-rabbit.egdw.dk:5671/dis |
Note | ||
---|---|---|
| ||
The only environments available for external clients will be External test, Pre-PROD and PROD. |
To do that you'll need to do proper auth (see more in Authentication part). After connection you can subscribe to your queue.
You will get notifications only about cases that your client have access to.
Persistance
To make sure that notifications will go out before sending notifications DIS is checking on health of external rabbit connection. To achieve this additional consumer is introduced to external rabbit (dis-healthcheck-stub) only for purpose of reporting connection health. If rabbit is down message is redirected to internal queue (dis-DelayedExternalNotifications) along with the list of clients that we should notify. Then consumer of this queue will try to send messages to external rabbit.
Notifications model
The messages that will go into the notifications queues are:
DIS.Queue.Models.IExternalSystemCaseNotification
and data inside:
public interface IExternalSystemCaseNotification
{
Guid Id { get; }
ExternalNotificationType NotificationType { get; }
string? CaseDetailsUri { get; }
DateTime? EventTime { get; }
}
public enum ExternalNotificationType
{
Created = 0,
Updated = 1,
Closed = 2,
Deleted = 3
}
Authentication
To be able to connect to Rabbit instance you're going to need user and password with access to proper queue.
Table of Contents |
---|
Change history
Page properties | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|